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

And*_*ind 0 c# file-io .net-4.0

例如.我有文件夹"MyFolder"我希望获得文件名为" *D.*" 的所有文件的大小

有一个简单的方法来做到这一点?

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

Dar*_*rov 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您的目标是.NET 4.0之前的.NET版本,而EnumerateFiles方法不可用,则可以使用GetFiles方法.