如何检查C++中的文件是否存在于Windows程序中?

Joe*_*Joe 2 c c++ windows filesystems winapi

这适用于仅限Windows的程序,因此可移植代码不是问题.

我只需要:

bool DoesFileExist( LPWSTR lpszFilename )
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

efo*_*nis 14

据着名的Raymond Chen说,如果你迷信,你应该使用GetFileAttributes.

  • 有趣的是,看起来_access()实际上只是GetFileAttributes()的包装器 (2认同)

Jar*_*Par 7

这是一个复杂的问题.没有100%的方法来检查文件是否存在.你可以检查的只是"我有一定程度的访问权限的文件的存在." 使用非超级用户帐户,存在一个您无权访问的文件,访问检查不会显示文件的存在.

例如.可以无法访问特定目录.然后无法确定该目录中是否存在文件.

话虽这么说,如果你想检查文件的存在,你有一定的访问权限使用以下之一:_stat,_stat64,_stati64,_wstat,_wstat64,_wstati64


Wal*_*ght 6

GetFileAttributes正是您所需要的.如果它返回的值不是INVALID_FILE_ATTRIBUTES,则该文件存在.