在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
对象的数组放在适当的位置,然后按Length
或Name
属性对它们进行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