2023-03-13 12:31:24
在C++中判断文件或文件夹是否存在,可根据项目环境选择以下方法:
1. 使用C++17的std::filesystem(推荐)C++17引入的std::filesystem提供了跨平台的文件系统操作接口,支持检查文件/目录是否存在及类型判断。
fs::exists(path):检查路径是否存在。
fs::is_directory(path):检查路径是否为目录。
在类Unix系统中,可通过access()函数检查文件是否存在。
access(path, F_OK):检查文件是否存在(F_OK为模式参数)。
通过尝试打开文件判断是否存在,兼容所有平台,但无法区分目录。
以只读模式("r")打开文件,成功则存在,失败则不存在。
在Windows系统中,可通过GetFileAttributes函数检查文件或目录属性。
GetFileAttributesA(path):获取文件属性,返回INVALID_FILE_ATTRIBUTES表示失败。
FILE_ATTRIBUTE_DIRECTORY:判断是否为目录。
根据项目需求和平台支持,选择最适合的方案即可。