我想这是一个非常常见的要求,在一个应用程序中进行了大量的日志记录.我正在开发一个C#Windows应用程序.NET 3.5.
我的应用程序生成大量的日志文件,其当前日期放在文件名中,如此版本20091112.什么是删除早于30天的文件的最佳策略.我即将使用它的一种方法是遍历文件名,提取日期部分,转换为DateTime对象并与今天的日期进行比较.这是一个优雅的正则表达式解决方案:)?还是更好的东西?
Dar*_*rov 33
var files = new DirectoryInfo(@"c:\log").GetFiles("*.log");
foreach (var file in files)
{
if (DateTime.UtcNow - file.CreationTimeUtc > TimeSpan.FromDays(30))
{
File.Delete(file.FullName);
}
}
Run Code Online (Sandbox Code Playgroud)
Per*_*rOl 10
更新.net 4.0:
var files = new DirectoryInfo(directoryPath).GetFiles("*.log");
foreach (var file in files.Where(file => DateTime.UtcNow - file.CreationTimeUtc > TimeSpan.FromHours(2))) {
file.Delete();
}
Run Code Online (Sandbox Code Playgroud)