有办法删除目录中最旧的文件吗?使用c#
本文关键字:文件 使用 删除目录 | 更新日期: 2023-09-27 18:26:39
所以我在本地笔记本电脑上有一个目录。我的程序存储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;
}
我不知道这是否可能?希望你们中的一个能帮我一把
首先按照创建日期对检索到的列表进行排序,跳过前100个元素,将所有剩余元素放入列表中。然后从该列表中删除所有文件。
var oldFiles = Directory.EnumerateFiles(/*...*/)
.Select(i => new FileInfo(i))
.OrderByDescending(i => i.DateCreated)
.Skip(100);
foreach(var file in oldFiles)
{
file.Delete();
}
类似这样的东西:
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
类