MFC 文件与文件夹相关操作
来源:互联网 发布:淘宝内裤买家秀男露丁 编辑:程序博客网 时间:2024/06/05 00:47
计算指定文件夹的总大小
实现函数(注意该函数是写在对话框类中的,所以需要在类中做声明什么的, 这里没有给出)
DWORD64 CMFCGETFOLDERSIZEDlg::GetFolderSize(CString szPath)//获得文件夹大小,返回值大小单位为M{CString szFileFilter = szPath + L"\\*.*";HANDLE hFind = NULL;WIN32_FIND_DATA fileinfo;//保存文件信息的结构体,个人理解有可能是文件,也有可能是目录DWORD64 dwSize = 0;hFind = FindFirstFile(szFileFilter, &fileinfo);do{if (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果目标为文件夹即目录则为真{CString myfilename = fileinfo.cFileName;if (myfilename != "." && myfilename !="..")//“.”表示当前目录,“..”表示上一级目录,只有在非两者的情况下才意味着该对象为我们指定文件夹的子文件夹{CString sztmp;sztmp = szPath +L"\\"+ fileinfo.cFileName;dwSize = dwSize + GetFolderSize(sztmp);//递归得到子文件夹大小}}else{dwSize += fileinfo.nFileSizeLow;}} while (FindNextFile(hFind, &fileinfo));FindClose(hFind);return dwSize;}调用该函数
void CMFCGETFOLDERSIZEDlg::OnBnClickedOk(){DWORD64 myfoldersize = GetFolderSize(L"E:\\testfolder");CString mylong;mylong.Format(L"文件夹大小为:%ld", myfoldersize);MessageBox(mylong);}
删除文件夹(包括非空文件夹)
void CMFCGETFOLDERSIZEDlg::myDeleteDirectory(CString directory_path) //删除一个文件夹下的所有内容{CFileFind finder;CString path;path = directory_path + L"\\*.*";BOOL bWorking = finder.FindFile(path);while (bWorking){bWorking = finder.FindNextFile();if (finder.IsDirectory() && !finder.IsDots())//处理文件夹{myDeleteDirectory(finder.GetFilePath());//递归删除文件RemoveDirectory(finder.GetFilePath());//删除已被删除文件的文件夹}else//处理文件{DeleteFile(finder.GetFilePath());}}}调用该函数
void CMFCGETFOLDERSIZEDlg::OnBnClickedButtonDelete(){myDeleteDirectory(L"E:\\testfolder");//删除文件夹下所有文件 RemoveDirectory(L"E:\\testfolder");//删除该空文件夹 }
获得指定文件夹下的子文件夹名称(无递归,只获得一层)函数
void CMFCGETFOLDERSIZEDlg::GetFolderSonName(CString directory_path)//获得文件夹下的子文件夹名称{CFileFind finder;CString path;path = directory_path + L"\\*.*";BOOL bWorking = finder.FindFile(path);while (bWorking){bWorking = finder.FindNextFile();if (finder.IsDirectory() && !finder.IsDots())//处理文件夹{CString SonFolderName = finder.GetFileName();MessageBox(SonFolderName);}}}调用该函数
void CMFCGETFOLDERSIZEDlg::OnBnClickedButtonFoldername(){GetFolderSonName(L"E:\\testfolder");}
void CMFCGETFOLDERSIZEDlg::GetSystimeCreatFolder(){SYSTEMTIME sys;GetLocalTime(&sys);//获得系统时间CString myname;myname.Format(L"%4d%02d%02d", sys.wYear, sys.wMonth, sys.wDay);CFileFind filefind;CString strPathname = L"d:\\" + myname;if (filefind.FindFile(strPathname))//判断文件夹是否存在,不存在则创建MessageBox(L"文件存在");else{MessageBox(L"文件不存在,创建该文件夹");CreateDirectory(strPathname,NULL);}}调用该函数
void CMFCGETFOLDERSIZEDlg::OnBnClickedButton3(){GetSystimeCreatFolder();}
判断指定路径文件是否存在
if (PathFileExists(mFilePath)){MessageBox(L"存在");}else{MessageBox(L"不存在");}
1 0
- MFC 文件与文件夹相关操作
- python与文件文件夹相关操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC文件、文件夹操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC文件操作相关
- mfc 文件 文件夹操作大全
- MFC文件、文件夹操作整理
- 文件和文件夹相关操作
- MFC 中打开 文件,文件夹,以及删除文件,文件夹操作
- VC++ MFC文件,文件夹操作整理
- VC++ MFC文件,文件夹操作整理
- VC MFC 文件文件夹操作整理
- VC++ MFC文件,文件夹操作整理
- 数据结构学习笔记:顺序栈与链栈
- SVN命令
- 旋转数组的最小数字
- ——java动态代理及AOP
- POJ--3268--Silver Cow Party【SPFA+邻接表】
- MFC 文件与文件夹相关操作
- POJ 1564 Sum It Up
- Android NFC近场通信02----读写卡的准备工作
- jQuery代码优化:事件委托
- socket 异常
- 算法设计学习:顺序表算法
- int float double 最大值,最小值
- 乩似纲兔笛胰痔霉慰暮兔
- 粮诖喊傧账糖冒蓝坟屏墙