尝试列出机器上的所有目录和文件并将它们分类为大小。 我得到一个文件名和它们的大小列表,但它不会坚持他们的顺序...任何建议非常感谢!干杯按大小顺序显示目录和文件c#
//create instance of drive which contains files
DriveInfo di = new DriveInfo(@"C:\");
//find the root directory path
DirectoryInfo dirInfo = di.RootDirectory;
try
{
//EnumerateFiles increases the performance and sort them
foreach (var fi in dirInfo.EnumerateFiles().OrderBy(f =>f.Length).ToList())
{
try
{
//Display each file
Console.WriteLine("{0}\t\t{1}", fi.FullName, fi.Length);
}
catch (UnauthorizedAccessException UnAuthTop)
{
Console.WriteLine("{0}", UnAuthTop.Message);
}
}
除了'ToList'是不必要的(以及通过在枚举之前强制传递整个集合而损害性能)以及嵌套的'try-catch',不会看到会阻止收集进行排序的问题。它产生的输出是什么,它与你所期望的有什么不同? – Abion47
我最初没有使用ToList方法,但它给出了相同的结果......它给我的文件的完整列表,但不是大小顺序......但与同一文件夹内的所有其他文件,所以他们是处理我认为 – user7553219
该代码假定FileInfo.Length属性值不会更改。文件确实会改变它们的长度,当进程写入文件时发生。这对我来说可能是多么的不利,对FileInfo里面有一些缓存,排序时也很危险。 –