所以我的笔记本电脑上有一个目录。我的程序存储xml文档的位置。但我希望程序能够找到最旧的并删除该目录中有100多个文档。
这是我检查目录中xml文档数量的方式。
private int CheckAmountOfFiles()
{
var fileCount = (from file in Directory.EnumerateFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "*.xml", SearchOption.TopDirectoryOnly) select file).Count();
return fileCount;
}
我不知道这是否可能?希望你们中的一个能帮帮忙。
答案 0 :(得分:3)
首先按创建日期对已检索列表进行排序,跳过前100个元素并将所有剩余元素保留到列表中。然后删除该列表中的所有文件。
var oldFiles = Directory.EnumerateFiles(/*...*/)
.Select(i => new FileInfo(i))
.OrderByDescending(i => i.DateCreated)
.Skip(100);
foreach(var file in oldFiles)
{
file.Delete();
}
答案 1 :(得分:0)
这样的事情:
var last = Directory.EnumerateFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
.Select(fileName => new FileInfo(fileName))
.OrderByDescending(fileInfo => fileInfo.LastWriteTime) // or "CreationTime"
.Skip(100) // Skip 100 newest files
.Select(fileInfo => fileInfo.FullName);
...
foreach (var fileName in last)
File.Delete(fileName);
请注意,为了获得所需的时间,您必须使用FileInfo
类