MFC判断目录下是否包含指定文件,或检测文件是否存在。
第一种方法: 需要包含的头文件和库文件:
#include <shlwapi.h>
#pragma comment(lib,"Shlwapi.lib") //如果没有这行,会出现link错误
函数原型:
BOOL PathFileExists ( __in LPCTSTR pszPath );
Parameters参数
pszPath[in] 类型:LPCTSTR
A pointer to a null-terminated string of maximum length MAX_PATH that contains the full path of the object to verify.
一个最大长度为MAX_PATH并且以'\0'结尾的字符串指针。
代码实例:
BOOL FLAG = PathFileExists(L"D:\\MATLAB\\COCO VA1.3(20210312)\\encrypt.m");
if (FLAG)
{
//
AfxMessageBox(L"该文件存在。");
return true;
}
else
{
//
AfxMessageBox(L"该文件不存在。");
return false;
}
第二种方法: 函数原型:
函数名:BOOL IsFileExist(LPCTSTR lpFileName)
作 用: 判断文件或目录是否存在
参 数:lpFileName 文件路径
返回值:成功 true , 失败 false
代码实例:
BOOL IsFileExist(LPCTSTR lpFileName)
{
if(NULL == lpFileName)
{
return FALSE;
}
else
{
BOOL bExist = TRUE;
HANDLE hFind = INVALID_HANDLE_VALUE;
WIN32_FIND_DATA DataFind;
hFind = FindFirstFile(lpFileName, &DataFind);
if(INVALID_HANLDE_VALUE == hFind)
{
bExist = FALSE;
}
else
{
FindClose(hFind);
return bExist;
}
}
}
第三种方法: 函数原型:
函数原型:int _access(const char *pathname, int mode);
参数:pathname 为文件路径或目录路径 mode 为访问权限(在不同系统中可能用不能的宏定义重新定义)
返回值:如果文件具有指定的访问权限,则函数返回0;如果文件不存在或者不能访问指定的权限,则返回-1.
备注:当pathname为文件时,_access函数判断文件是否存在,并判断文件是否可以用mode值指定的模式进行访问。当pathname为目录时,_access只判断指定目录是否存在,在Windows NT和Windows 2000中,所有的目录都只有读写权限。
mode的值和含义如下所示:
00——只检查文件是否存在
02——写权限
04——读权限
06——读写权限
对应的还有_access的宽字符版本,用法相同。
代码实例:
#include <IO.h>
if((_access( "C:\\a.txt", 0 )) != -1 )
{
//文件存在;
}
|