VC++如何检测文件是否存在

VC++如何检测文件是否存在,第1张

VC++中检测文件是否存在有很多种方法,比较通用的是GetFileAttributes函数,在控制台下增加#include<windows.h>,MFC和其它窗口程序下可以直接使用:

if(GetFileAttributes(FileName)<0)//==-1

{

    //文件不存在!

}

else

    //存在

这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为FILE_ATTRIBUTE_DIRECTORY),不稿悄会因为文件访问权限等问题造成误判。

此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:

CFile::Open或OpenFile,悔敬神无法以读取方式打开

_access函数,通过判断文件碧亏是否能够访问,返回文件是否存在

CFileFind类或FindFirstFile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。

使用Shell函数SHGetFileInfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。

CreateFile打开,成功当然存在,失败敬历兆再用GetLastError看原因,根据失败原因亮租判断文烂答件是否存在。

另外,CFileFind应该没什么问题。可参考:

CFileFind finder

BOOL bWorking = finder.FindFile(_T("*.*"))

while (bWorking)

{

bWorking = finder.FindNextFile()

TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName())

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12231528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存