如何获取某些文件集的大小?

时间:2012-03-13 23:29:49

标签: c# .net-4.0 file-io

例如。我有文件夹“MyFolder” 我想获得文件名为“*D.*

的所有文件的大小

有一种简单的方法吗?

(P.S。我知道整个文件夹,我可以使用TotalSize()来获取它的大小,但是我的约束怎么样?)

2 个答案:

答案 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();