例如。我有文件夹“MyFolder”
我想获得文件名为“*D.*
”
有一种简单的方法吗?
(P.S。我知道整个文件夹,我可以使用TotalSize()来获取它的大小,但是我的约束怎么样?)
答案 0 :(得分:6)
有一种简单的方法吗?
是的,有。实际上是一行代码:
using System;
using System.IO;
using System.Linq;
class Program
{
static void Main()
{
long size = Directory
.EnumerateFiles(@"c:\work", "*d.*")
.Select(x => new FileInfo(x))
.Sum(x => x.Length);
Console.WriteLine(@"The size of files in c:\work\*d.* is {0} bytes", size);
}
}
如果您的目标是.NET 4.0之前的.NET版本,而EnumerateFiles方法不可用,则可以使用GetFiles方法。
答案 1 :(得分:1)
不要认为自己创造总和有任何简单的方法。有不同的方法,例如:
DirectoryInfo mydir = new DirectoryInfo();
long size = 0;
foreach(FileInfo file in mydir.GetFiles("D*"))
size += file.Length();