判断文件是否存在,判断是否为文件夹
来源:互联网 发布:化工仿真软件 编辑:程序博客网 时间:2024/06/01 09:18
判断路径(文件或文件夹)是否存在
2.CFile和CFileStatus类
CFile的静态函数GetStatus如果返回FALSE表示文件不存在
3.CFileFind类
直接使用该类的成员函数FindFile进行判断
3.判断文件夹是否存在
当然在CFileFind里面有GetLength()函数,也可以求得。
文件夹大小
BOOL FileExist(CString strPath){ WIN32_FIND_DATA wfd; BOOL rValue = FALSE; HANDLE hFind = FindFirstFile(strPath, &wfd); if ( hFind!=INVALID_HANDLE_VALUE ) { rValue = TRUE; } FindClose(hFind); return rValue;}
判断路径是否为文件夹
#pragma comment(lib,"shlwapi.lib")#include <shlwapi.h>BOOL PathIsDirectory(strPath)
判断文件是否存在。
1._access函数,在io.h中。
原型:int _access(const char *filename, int amode);
参数amode(好象有5种模式)
0:检查文件是否存在
1:检查文件是否可运行
2:检查文件是否可写访问
4:检查文件是否可读访问
还有一种,由于MSDN突然坏了,暂时保留着
if ( _access(file,0) ) { //文件不存在 }
2.CFile和CFileStatus类
CFile的静态函数GetStatus如果返回FALSE表示文件不存在
CFileStatus fs; if ( !CFile::GetStatus(strFileName,fs) ) { //文件不存在 }
3.CFileFind类
直接使用该类的成员函数FindFile进行判断
CFileFind ff; if ( !ff.FindFile(strFileName) ) { //文件不存在 } ff.Close();
3.判断文件夹是否存在
DirExists(sPath);
VC中判断目录,文件是否存在,创建目录,求目录或文件大小的方法
目录是否存在检查:
BOOL FolderExist(CString strPath){ WIN32_FIND_DATA wfd; BOOL rValue= FALSE; HANDLE hFind= FindFirstFile(strPath, &wfd); if((hFind!=INVALID_HANDLE_VALUE)&& (wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)) { rValue = TRUE; } FindClose(hFind); returnrValue;}
文件存在性检查:
注意,该函数是检查当前目录下是否有该文件
如果想检查其他目录下是否有该文件,则在参数中输入该文件的完整路径即可
BOOL FileExist(CString strFileName){ CFileFindfFind; returnfFind.FindFile(strFileName);}
创建目录:
BOOL CreateFolder(CString strPath){ SECURITY_ATTRIBUTES attrib; attrib.bInheritHandle = FALSE; attrib.lpSecurityDescriptor = NULL; attrib.nLength = sizeof(SECURITY_ATTRIBUTES); //上面定义的属性可以省略 //直接使用return::CreateDirectory(path, NULL);即可 return::CreateDirectory(strPath, &attrib);}
文件大小:
DWORDGetFileSize(CString filepath){ WIN32_FIND_DATA fileInfo; HANDLEhFind; DWORDfileSize; CStringfilename; filename =filepath; hFind =FindFirstFile(filename,&fileInfo); if(hFind !=INVALID_HANDLE_VALUE) fileSize =fileInfo.nFileSizeLow; FindClose(hFind); returnfilesize;}
当然在CFileFind里面有GetLength()函数,也可以求得。
文件夹大小
DWORDCVCTestDlg::GetDirSize(CString strDirPath){ CStringstrFilePath; DWORD dwDirSize = 0; strFilePath+= strDirPath; strFilePath+= "\\*.*"; CFileFindfinder; BOOL bFind =finder.FindFile(strFilePath); while(bFind) { bFind =finder.FindNextFile(); if(!finder.IsDots()) { CStringstrTempPath = finder.GetFilePath(); if(!finder.IsDirectory()) { dwDirSize +=finder.GetLength(); } else { dwDirSize +=GetDirSize(strTempPath); } } } finder.Close(); returndwDirSize;
VC删除文件夹下所有文件的代码
//删除文件夹目录(非空)
/////////////////////////////////////////
//下面是应用,CString m_strDir 是一个文件夹路径,如:d:downloadpic
bool DeleteDirectory(char* sDirName) { CFileFind tempFind; char sTempFileFind[200] ; sprintf(sTempFileFind,"%s\*.*",sDirName); BOOL IsFinded = tempFind.FindFile(sTempFileFind); while (IsFinded) { IsFinded = tempFind.FindNextFile(); if (!tempFind.IsDots()) { char sFoundFileName[200]; strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200)); if (tempFind.IsDirectory()) { char sTempDir[200]; sprintf(sTempDir,"%s\%s",sDirName,sFoundFileName); DeleteDirectory(sTempDir); } else { char sTempFileName[200]; sprintf(sTempFileName,"%s\%s",sDirName,sFoundFileName); DeleteFile(sTempFileName); } } } tempFind.Close(); if(!RemoveDirectory(sDirName)) { return FALSE; } return TRUE; }
/////////////////////////////////////////
//下面是应用,CString m_strDir 是一个文件夹路径,如:d:downloadpic
BOOL DelAll(){ if(PathFileExists(m_strDir)) DeleteDirectory((LPSTR)(LPCTSTR)m_strDir); return 1;}
如果不进行递归删除。你可以使用API函数SHFileOperation,它可以一次删除目录及其下面的子目录和文件。
示例代码:
BOOL DelTree(LPCTSTR lpszPath){ SHFILEOPSTRUCT FileOp; FileOp.fFlags = FOF_NOCONFIRMATION; FileOp.hNameMappings = NULL; FileOp.hwnd = NULL; FileOp.lpszProgressTitle = NULL; FileOp.pFrom = lpszPath; FileOp.pTo = NULL; FileOp.wFunc = FO_DELETE; returnSHFileOperation(&FileOp) == 0;}
- 判断文件是否存在,判断是否为文件夹
- 判断文件是否存在,判断是否为文件夹
- 判断文件,文件夹是否存在
- java 判断文件,判断文件夹是否存在.
- 判断文件夹是否存在
- 判断文件夹是否存在
- 判断文件夹是否存在
- C#怎样判断文件是否存在和文件夹是否存在
- 判断文件或文件夹是否存在
- 上传文件时判断文件夹是否存在
- 判断文件或文件夹是否存在
- 如何判断文件文件夹是否存在
- C#判断文件及文件夹是否存在
- 判断文件或文件夹是否存在
- 判断文件或文件夹是否存在
- C/C++判断文件/文件夹是否存在
- c#---判断文件或者文件夹是否存在
- C/C++判断文件/文件夹是否存在
- java jdk环境变量
- make的自动变量
- 自动添加修改环境变量
- Android 播放SD卡上指定的一首歌(初级版)
- Drawable
- 判断文件是否存在,判断是否为文件夹
- 生成最大值范围内无重复值的长度为最大值的随机序列List<int>
- JS 跳转到指定Action
- git使用总结
- Windows系统编程之异步I/O和完成端口
- 斩断DDoS魔掌的六把利剑(四)
- 一次Sqlalchemy从model类定义到数据库表的SQL脚本自动生成日志
- JDK 1.7的新特性
- Qt学习之路(19): 事件(event)