使用WinAPI函数FindFirstFile或GetFileAttributes判断文件是否存在
2012-07-20 09:18
2281 查看
函数FindFirstFile根据文件名查找文件:如执行成功,返回一个搜索句柄;如果出错,返回一个INVALID_HANDLE_VALUE常数。返回的如果是句柄,应该用FindClose函数关闭。
HANDLE WINAPI FindFirstFile( __in LPCTSTR lpFileName, __out LPWIN32_FIND_DATA lpFindFileData );
函数GetFileAttributes为一个指定的文件或目录返回文件系统的属性。如果函数成功,返回值包含文件或目录的属性。如果函数失败,返回值是INVALID_FILE_ATTRIBUTES。
DWORD WINAPI GetFileAttributes( __in LPCTSTR lpFileName );
因此,可以使用上述两个API函数对一个文件进行操作,如果返回出错值,则说明文件不存在。实现代码如下:
使用FindFirstFile函数:
BOOL IsFileExist(LPCTSTR lpFileName) { WIN32_FIND_DATA fd = {0}; HANDLE hFind = FindFirstFile(lpFileName, &fd); if (hFind != INVALID_HANDLE_VALUE) { FindClose(hFind); } return ((hFind != INVALID_HANDLE_VALUE) && !(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)); }
使用GetFileAttributes函数:
BOOL IsFileExist(LPCTSTR lpFileName) { if(lpFileName) return FALSE; DWORD dwAttr = GetFileAttributes(lpFileName); if(INVALID_FILE_ATTRIBUTES==dwAttr || (dwAttr & FILE_ATTRIBUTE_DIRECTORY)) return FALSE; return TRUE; }
相关文章推荐
- 2014-03-31工作日志:判断文件是否存在可以使用GetFileAttributes 方法。
- 文件的15种属性 以及 判断文件是否存在GetfileAttributes
- PHP使用get_headers函数判断远程文件是否存在的方法
- PHP使用get_headers函数判断远程文件是否存在的方法
- 判断文件是否存在及是否正在使用
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- System.IO.File.Exist(filePath)判断另外一台服务器上某个文件是否存在
- How to know is the file exist in C++ - 在C++中如何判断文件是否存在
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
- PHP get_headers函数判断远程文件是否存在
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
- Windows下使用_access和_stat判断文件和目录是否存在的区别
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- C语言判断文件夹或者文件是否存在以及权限等信息access函数和删除文件或目录 remove()函数使用实例
- CMake中使用get_target_property判断Target是否存在
- 使用shell判断路径或文件是否存在
- 采用vector建立栈的方式,打印文件夹下所有文件名称(FindFirstFile与FindNextFile的使用)
- 使用SQL Server判断文件是否存在后再删除(详解)
- GetFileAttributes判断路径是文件还是目录