加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 获取最新的N个文件并删除其余文件

发布时间:2020-12-16 01:50:53 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一个从文件夹中获取文件的方法,按创建时间对其进行排序,获取前五个最新文件并删除其余文件. 任何帮助将不胜感激,我的代码如下: DirectoryInfo Dir = new DirectoryInfo(DirectoryPath);FileInfo[] FileList = Dir.GetFiles("*.*",SearchOptio
我正在尝试编写一个从文件夹中获取文件的方法,按创建时间对其进行排序,获取前五个最新文件并删除其余文件.

任何帮助将不胜感激,我的代码如下:

DirectoryInfo Dir = new DirectoryInfo(DirectoryPath);
FileInfo[] FileList = Dir.GetFiles("*.*",SearchOption.AllDirectories);
var x = FileList.OrderByDescending(file => file .CreationTime).Take(5);

如何修改此代码以删除所有其他文件?

解决方法

当您保留第一个N并对其余部分执行其他操作时,最好循环遍历所有内容,将第一个N放入单独的列表中,同时在其余部分上调用Delete().

var query = fileList.OrderByDescending(file => file.CreationTime);
var keepers = new List<FileInfo>();
var i = 0;
foreach (var file in query)
{
    if (i++ < N)
    {
        keepers.Add(file);
    }
    else
    {
        file.Delete();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读