MFC 文件与文件夹相关操作
2014-07-31 21:57
459 查看
计算指定文件夹的总大小
实现函数(注意该函数是写在对话框类中的,所以需要在类中做声明什么的, 这里没有给出)
删除文件夹(包括非空文件夹)
获得指定文件夹下的子文件夹名称(无递归,只获得一层)函数
获取系统时间创建文件夹
判断指定路径文件是否存在
if (PathFileExists(mFilePath))
{
MessageBox(L"存在");
}
else
{
MessageBox(L"不存在");
}
实现函数(注意该函数是写在对话框类中的,所以需要在类中做声明什么的, 这里没有给出)
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"不存在");
}
相关文章推荐
- MFC 相关文件夹、文件操作
- MFC 文件与文件夹相关操作
- MFC 运用CFileFind 类 递归实现文件夹的 复制 (MFC 文件操作 二)
- MFC 运用CFileFind 类 递归实现文件夹的 复制 (MFC 文件操作 二)
- MFC 中打开 文件,文件夹,以及删除文件,文件夹操作
- 转载:MFC文件/文件夹操作查找、复制、删除
- MFC 中打开 文件,文件夹,以及删除文件,文件夹操作
- MFC文件操作相关
- C#中文件与文件夹相关的操作
- Linux系统下的文件和文件夹相关操作(创建/删除/修改权限)
- MFC 文件及其属性相关操作 (MFC 文件操作 三)
- php中访问文件或文件夹相关操作
- C#中文件与文件夹相关的操作
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- 关于文件及文件夹的相关操作
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- MFC学习笔记之:MFC文件、文件夹操作完全整理
- MFC文件、文件夹操作