2026-04-05 16:23:02
在C++中判断文件是否存在有多种方法,以下是几种常用的实现方式及其适用场景:
1. 使用 std::ifstream(兼容C++98及以上)原理:尝试打开文件,通过流状态判断是否存在。代码示例:
#include <fstream>bool fileExists(const std::string& filename) { std::ifstream file(filename); return file.is_open(); // 或 file.good()}特点:
原理:利用标准库提供的跨平台文件系统接口。代码示例:
#include <filesystem>namespace fs = std::filesystem;bool fileExists(const std::string& filename) { return fs::exists(filename);}特点:
原理:通过系统调用检查文件访问权限。代码示例:
#include <unistd.h>bool fileExists(const std::string& filename) { return access(filename.c_str(), F_OK) == 0;}特点:
原理:调用 Win32 API 获取文件属性。代码示例:
#include <windows.h>bool fileExists(const std::string& filename) { DWORD attr = GetFileAttributesA(filename.c_str()); return (attr != INVALID_FILE_ATTRIBUTES);}特点:
根据项目环境(C++标准、目标平台)和功能需求选择最合适的方法即可。