自动删除文件工具
作者:互联网
普通和递归方式删除文件
/// <summary> /// 删除指定文件夹目录下的文件,不包含其中的文件夹 /// </summary> /// <param name="dirInfo"></param> /// <param name="time"></param> public void delfiles(DirectoryInfo dirInfo, DateTime time) { try { if (dirInfo.GetFiles() != null) { foreach (FileInfo Fileinfo in dirInfo.GetFiles()) { if (Fileinfo.CreationTime < time) { Fileinfo.Delete(); } } try { dirInfo.Delete(); } catch { } } } catch { } } /// <summary> /// 递归删除指定文件夹所有文件和文件夹 /// </summary> /// <param name="dirInfo"></param> /// <param name="time"></param> public void delfilesAll(DirectoryInfo dirInfo, DateTime time) { try { if (dirInfo.GetFiles() != null) { foreach (FileInfo Fileinfo in dirInfo.GetFiles()) { if (Fileinfo.CreationTime < time) { Fileinfo.Delete(); } } try { dirInfo.Delete(); } catch { } } try { if (dirInfo.GetDirectories() != null) { foreach (DirectoryInfo dirInfo1 in dirInfo.GetDirectories()) { delfiles(dirInfo1, time); } } } catch { } } catch { } }
用法:使用timer控件 和 后台运行控件
private void timer1_Tick(object sender, EventArgs e) { //每隔5分钟扫一次,每天晚上8:05——8:25期间扫描有效,进行图片删除 if ((!this.backgroundWorker1.IsBusy) && (DateTime.Now.Hour == TaskInforList.startH) && (DateTime.Now.Minute > TaskInforList.startM && DateTime.Now.Minute < TaskInforList.endM) && (!isDeleting)) { isDeleting = true; this.backgroundWorker1.RunWorkerAsync(); } } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { DateTime dt = DateTime.Today; if (TaskInforList.includeSubDir) { for (int i = 0; i < TaskInforList.taskInforList.Count; i++) { DateTime dtDiff = dt.AddDays(-TaskInforList.taskInforList[i].Days); delfilesAll(new DirectoryInfo(TaskInforList.taskInforList[i].Path), dtDiff); } } else { for (int i = 0; i < TaskInforList.taskInforList.Count; i++) { DateTime dtDiff = dt.AddDays(-TaskInforList.taskInforList[i].Days); delfiles(new DirectoryInfo(TaskInforList.taskInforList[i].Path), dtDiff); } } isDeleting = false; }
标签:文件,dirInfo,删除,DateTime,DirectoryInfo,taskInforList,自动,TaskInforList,Fileinfo 来源: https://www.cnblogs.com/forblueskies/p/16490103.html