using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Linq.Expressions;
using System.IO;
/// <summary>
/// Summary description for AutoDeleteBackupFile
/// </summary>
public class AutoDeleteBackupFile
{
public AutoDeleteBackupFile()
{
//
// TODO: Add constructor logic here
//
}
public void DeleteBKFile()
{
var interval = 1;//auto delete interval is one day
var now = DateTime.Now;
//路径及文件类型都可选
var allRecords = Directory.GetDirectories(@"D:/Back_up", "*.txt", SearchOption.TopDirectoryOnly);
var records = (from dir in allRecords
let record = Directory.GetCreationTime(dir)
let timeSpan = now - record.AddDays(interval)
where timeSpan.Days > 0 || timeSpan.Hours > 0 || timeSpan.Minutes > 0 || timeSpan.Seconds > 0
select dir).ToArray();
foreach (var record in records)
{
DeleteFolder(record);
}
}
public void DeleteFolder(string dir)
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
{
FileInfo file = new FileInfo(d);
if (file.Attributes.ToString().IndexOf("ReadOnly") != -1)
{
file.Attributes = FileAttributes.Normal;
}
file.Delete();
}
else
{
DeleteFolder(d);
}
}
Directory.Delete(dir);
}
}