Csharp/C#教程:在C#中对Directory.GetFiles的结果进行排序分享


在C#中对Directory.GetFiles的结果进行排序

我有这段代码列出目录中的所有文件。

class GetTypesProfiler { static List Test() { List dataList = new List(); string folder = @"DIRECTORY"; Console.Write("------------------------------------------n"); var files = Directory.GetFiles(folder, "*.dll"); Stopwatch sw; foreach (var file in files) { string fileName = Path.GetFileName(file); var fileinfo = new FileInfo(file); long fileSize = fileinfo.Length; Console.WriteLine("{0}/{1}", fileName, fileSize); } return dataList; } static void Main() { ... } } 

我需要根据文件大小或字母顺序打印出文件信息。 如何从Directory.GetFiles()中对结果进行排序?

LINQ非常简单。

按名称排序

 var sorted = Directory.GetFiles(".").OrderBy(f => f); 

按大小排序,

 var sorted = Directory.GetFiles(".").OrderBy(f => new FileInfo(f).Length); 

按日期排序:(返回FileInfo的可枚举):

 Directory.GetFiles(folder, "*.dll").Select(fn => new FileInfo(fn)). OrderBy(f => f.Length); 

或者,按名称订购:

 Directory.GetFiles(folder, "*.dll").Select(fn => new FileInfo(fn)). OrderBy(f => f.Name); 

按文件名排序不需要创建FileInfo实例,但是如果要动态应用不同的排序方法,最好将FileInfo对象的数组放在适当的位置,然后按LengthName属性对它们进行OrderBy ,因此这个实现。 此外,看起来你要创建FileInfo ,所以最好有一个FileInfo对象的集合。

对不起我第一次没弄错,应该仔细阅读问题和文档。

如果您愿意,可以在FileInfo对象上使用LINQ:

上述就是C#学习教程:在C#中对Directory.GetFiles的结果进行排序分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 var orderedFiles = Directory.GetFiles("").Select(f=> new FileInfo(f)).OrderBy(f=> f.CreationTime) 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1001392.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐