MFC或C/C++中如何判断目录存在,文件/文件夹存在,亦或是文件夹存在( 四 )

<< "CFileFind:" << "文件或者文件夹查找成功" << std::endl;std::cout << std::endl;while (bRet){bRet = fFile.FindNextFile();if (fFile.IsDots()){continue;}if (fFile.IsDirectory()){std::cout << "CFileFind:" << "文件夹查找成功" << std::endl;std::cout << std::endl;}else{std::cout << "CFileFind:"<< "文件查找成功" << std::endl;std::cout << std::endl;}}}//方法二:statchar cPath[128] = { 0 };struct stat buff;int nLen = UnicodeToChar(strPath, cPath, strPath.GetLength());int nRet = -1;if (nLen > 0){nRet = stat(cPath, &buff);if (0 == nRet ) //文件或者目录存在{if (S_IFREG & buff.st_mode){//文件存在std::cout << "stat:" << cPath << "文件查找成功" << std::endl;std::cout << std::endl;}if (S_IFDIR & buff.st_mode){//文件夹存在std::cout << "stat:" << cPath << "文件夹查找成功" << std::endl;std::cout << std::endl;}}}//方式三:PathFileExistsif (PathFileExists(strPath)){//文件或文件夹存在std::cout << "PathFileExists:" << "文件或文件夹查找成功" << std::endl;std::cout << std::endl;}//方式四:CFileStatusCFileStatus FileStatus;BOOL bFileExists = CFile::GetStatus(strPath, FileStatus);if (bFileExists){//文件或文件夹存在std::cout << "CFileStatus:" << "文件或文件夹查找成功" << std::endl;std::cout << std::endl;}//方式五: access//包含 io.hnRet = _access(cPath, S_OK);if (0 == nRet){//文件或者文件夹存在std::cout << "_access:" << cPath << "文件或文件夹查找成功" << std::endl;std::cout << std::endl;}}
测试效果
如图:
1、当输入为目录
CString strPath = _T("D:\\DemoTest\\IsFileExist\\IsFileExist\\");
2、当输入为文件夹
CString strPath = _T("D:\\DemoTest\\IsFileExist\\IsFileExist");
2、当输入为文件
【MFC或C/C++中如何判断目录存在,文件/文件夹存在,亦或是文件夹存在】CString strPath = _T("D:\\DemoTest\\IsFileExist\\IsFileExist\\IsFileExistDlg.cpp");