0

我需要显示给定目录的平均文件大小(以 MB 为单位)。

我开始这样编码

string filePath = @"DesiredFilePath";
var getFiles = Directory.GetFiles(filePath);
var length = getFiles.Select(f => new FileInfo(f).Length);

如何扩展代码以找到平均文件大小?

4

3 回答 3

2

您可以使用Average扩展方法:

// using System.Linq;
string filePath = @"DesiredFilePath";
double averageFileSize = Directory
    .EnumerateFiles(filePath)
    .Average(x => new FileInfo(x).Length);
于 2013-06-23T15:55:40.017 回答
2

你快到了。

试试这个

string filePath = @"DesiredFilePath";
           var getFiles = Directory.GetFiles(filePath);
           var avg = getFiles.Select(f =>
                           new FileInfo(f).Length).Average();

           Console.WriteLine("The Average file size in {0} directory is {1} MB",
            filePath,Math.Round(avg/1048576,1));
于 2013-06-23T15:56:48.003 回答
1

它认为这是最短的方法(更少的代码):

string filePath = "My Path";
double averageBytes = new DirectoryInfo(filePath)
    .EnumerateFiles()
    .Average(file => file.Length);
double averageMb = averageBytes / 1048576.0;
于 2013-06-23T16:08:23.387 回答