C#获取带路径的数组的文件大小

loy*_*oyd 9 c# arrays file filesize

我是数组的新手,我想将多个文件的大小(以MB为单位)显示到textBox中.文件的路径在一个数组中.

var Files = Directory.GetFiles(Path, "*" + filetype, SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

我在另一篇文章中看到了这段代码来获取文件的大小:

long length = new System.IO.FileInfo(file).Length;
Run Code Online (Sandbox Code Playgroud)

如何将所有文件大小添加到int/string并将其写入textBox?

AAA*_*ddd 7

如果我理解正确,只需使用Linq Selectstring.Join

var results = Directory.GetFiles(Path, "*" + filetype, SearchOption.AllDirectories)
                        .Select(file => new FileInfo(file).Length);

 TextBox1.Text = string.Join(", ", results);
Run Code Online (Sandbox Code Playgroud)

如果你想总结它们,只需使用 Enumerable.Sum

 TextBox1.Text = $"{results.Sum():N3}";
Run Code Online (Sandbox Code Playgroud)

更新

public static class MyExtension
{
    public enum SizeUnits
    {
        Byte, KB, MB, GB, TB, PB, EB, ZB, YB
    }

    public static string ToSize(this Int64 value, SizeUnits unit)
    {
        return (value / (double)Math.Pow(1024, (Int64)unit)).ToString("0.00");
    }
}

 TextBox1.Text = results.Sum().ToSize();
Run Code Online (Sandbox Code Playgroud)