目录中最大的文件

时间:2014-12-27 21:23:57

标签: c#

我们已经完成了从目录中读取信息的任务。我正在努力寻找具有最大价值的文件。我试过这个;

using System.IO; 

static void Main(string[] args)
{
    DirectoryInfo folderInfo = new DirectoryInfo("path");
    FileInfo[] files = folderInfo.GetFiles();

    int largestSize;

    for (largestSize = 0; largestSize < files.Length; largestSize++)
    {
        Console.WriteLine(files[largestSize].Length);
    }

    Console.ReadLine();
}

但这不起作用。当我说它不起作用时,我的意思是它显示列表中目录中所有文件的文件大小。我完全感到困惑,因为这正是我的导师所建议的。 “为从0开始的最大文件创建一个变量,并循环遍历文件以找到最大的大小”。

我怀疑我可以使用或理解Foreach循环,因为到目前为止我只学习了For,do-while,while,以及if和if else语句。

4 个答案:

答案 0 :(得分:6)

您可以使用:

long largestSize = 0;
for (int i = 0; i < files.Length; i++)
{
    if (files[i].Length > largestSize)
         largestSize = files[i].Length;
}
Console.WriteLine(largestSize);

答案 1 :(得分:0)

按大小降序对文件进行排序

new DirectoryInfo(path).EnumerateFiles()
                       .OrderByDescending(f => f.Length)
                       .FirstOrDefault();

并返回最大的文件,如果目录不包含文件,则返回null。

答案 2 :(得分:0)

.Net 4(或.Net 3.5中的GetFiles):

long maxSize = new DirectoryInfo("path").EnumerateFiles().Max(f => f.Length);

对于更多文件,PLINQ可用于小幅加速:

long maxSize = new DirectoryInfo("path").EnumerateFiles().AsParallel().Max(f => f.Length);

答案 3 :(得分:-1)

   DirectoryInfo folderInfo = new DirectoryInfo(@"C:\test");
        FileInfo[] files = folderInfo.GetFiles();

        long[] sort = new long[files.Length];


        for (int largestSize = 0; largestSize < files.Length; largestSize++)
        {
            int index = 0;
            for (int largestSize2 = 0; largestSize2 < files.Length; largestSize2++)

            {
                if (files[largestSize].Length < files[largestSize2].Length)
                {
                    index++;
                }

            }  
            sort[index] = files[largestSize].Length;

        }


        for (int i = 0; i < sort.Length; i++)
        {
            Console.WriteLine(sort[i]);
        }
        Console.ReadLine();

我尝试了最简单的方式我可以理解你首先我循环throug文件并为所有元素做第二个循环我比较值并在数组内排序依赖于teher顺序比较希望你在寻找什么当然,对于排序文件,取决于大小不是最大的,总是排序[0]