分享

MFC学习之判断文件是否存在的三种方法_mfc判断文件是否存在

 行走在理想边缘 2023-05-25 发布于四川

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 )
{
	//文件存在;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多