有办法删除目录中最旧的文件吗?使用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;
    }

我不知道这是否可能?希望你们中的一个能帮我一把

有办法删除目录中最旧的文件吗?使用c#

首先按照创建日期对检索到的列表进行排序,跳过前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