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?
如果我理解正确,只需使用Linq Select和string.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)