删除指定路径下的超时文件和文件夹(目录)
来源:互联网 发布:饶颖为啥不告了知乎 编辑:程序博客网 时间:2024/05/13 11:52
最近在参与铁路项目有关图像拼接超时文件删除,这些资料在各大平台上还是很多的,在搜集了众多资料后一步步实现了最终的目标,这里做个记录:
第一步删除超时文件(但是无法删除超时文件夹)
这里只以简单的分钟超时为基准,而没有做过多的超时逻辑。
void CMFCApplication1Dlg::OnBnClickedButton1(){ CFileFind ff; CString szDir = _T("D:\\铁路项目测试\\MFCApplication1\\2017年9月\\*.*");//在路径之后加 *.* 的意思是查找这个路径下的所有类型的文件 BOOL res = ff.FindFile(szDir); while (res) { res = ff.FindNextFile(); if ((!ff.IsDirectory()) &&(!ff.IsDots())) { CTime fTime; CTime T = CTime::GetCurrentTime(); int y1 = T.GetYear(); int m1 = T.GetMonth(); int d1 = T.GetDay(); int h1 = T.GetHour(); int min1 = T.GetMinute(); int s1 = T.GetSecond(); ///////////////////////////////////////////////////类型转换 ff.GetCreationTime(fTime); int y2 = fTime.GetYear(); int m2 = fTime.GetMonth(); int d2 = fTime.GetDay(); int h2 = fTime.GetHour(); int min2 = fTime.GetMinute(); int s2 = fTime.GetSecond(); if ( min2 < min1) { CString path = _T("D:\\铁路项目测试\\MFCApplication1\\2017年9月\\"); path += ff.GetFileName(); DeleteFile(path); } } } ff.Close();}
利用删除文件BUTTON完成了指定逻辑超时文件的删除。
IsDots判断是否为点,这个要说明一下,用过Dos的话,就应该知道,每个目录下都有缺省的两个目录,名称分别为 ‘. ‘和 ‘.. ‘,分别代表本层目录和上一层目录。因此,当我们在遍历目录下文件时,需要过滤掉这两个缺省目录。IsDirectory表明这是一个目录,isDots表明这个是.或者..而这两个东西虽然是目录,但是一个表明这个目录本身,一个代表上层目录(但是根目录下面..也是本身)
第二步将删除文件扩大至可以删除文件夹
void CMFCApplication1Dlg::myDeleteDirectory(CString directory_path) //删除一个文件夹下的所有内容 { CFileFind finder; CString path = directory_path + _T("//*.*"); BOOL bWorking = finder.FindFile(path); while (bWorking) { bWorking = finder.FindNextFile(); CString res = finder.GetFileName(); CString res1 = finder.GetFilePath(); if (finder.IsDirectory() && !finder.IsDots()) {//处理文件夹 CTime fTime; CTime T = CTime::GetCurrentTime(); int y1 = T.GetYear(); int m1 = T.GetMonth(); int d1 = T.GetDay(); int h1 = T.GetHour(); int min1 = T.GetMinute(); int s1 = T.GetSecond(); ///////////////////////////////////////////类型转换 finder.GetCreationTime(fTime); int y2 = fTime.GetYear(); int m2 = fTime.GetMonth(); int d2 = fTime.GetDay(); int h2 = fTime.GetHour(); int min2 = fTime.GetMinute(); int s2 = fTime.GetSecond(); if (min2 < min1) { myDeleteDirectory(finder.GetFilePath()); //递归删除文件夹 RemoveDirectory(finder.GetFilePath()); } } else {//处理文件 DeleteFile(finder.GetFilePath()); } } }
在这里的如果将CString path = directory_path + _T(“//.“); 写成
CString path+=_T(“//.“); 有时候需要将button点两次才能删除,不知道为什么。
阅读全文
1 0
- 删除指定路径下的超时文件和文件夹(目录)
- 测试删除指定目录下的文件和文件夹
- 删除指定目录下的所有文件和文件夹
- 删除指定目录下的文件和文件夹
- C# 删除指定目录下的 所有指定文件、文件夹
- Java删除指定路径下所有文件和文件夹
- MFC--删除指定目录下的文件夹及其文件
- 删除当前目录下指定文件或者文件夹的批处理
- 删除指定目录下的全部文件或文件夹
- File,把指定的目录下的所有文件和文件夹删除的方法
- 批处理删除指定天数之前的文件和相应目录下的空文件夹
- ASP.NET 删除指定目录下的所有文件和文件夹
- Dos命令复制文件夹到制定目录 删除指定目录及其文件夹下的文件
- ASP.NET 删除指定目录下的文件和目录
- PHP递归删除指定目录下的文件和目录
- PHP递归删除指定目录下的文件和目录
- PHP递归删除指定目录和目录下的文件
- TreeView 显示指定路径下的所有文件和文件夹
- JavaScript(二)
- Angular js 实现简单购物车
- 【基础】随机数生成--C++源代码(VS2015)
- 大型网站架构系列:消息队列(二)
- BZOJ 4198 荷马史诗 (k叉哈夫曼树)
- 删除指定路径下的超时文件和文件夹(目录)
- spring小知识点总结
- leetcode 677. Map Sum Pairs
- 搭建中文版社区版gitlab
- Oracle数据库将各个字段的空值改为0
- 谷歌浏览器记住密码之后,输入框变色问题
- submit提交
- 大型网站系统架构
- ZOJ3606-Lazy Salesgirl