たとえば、私はフォルダ "MyFolder"を持っています そして、ファイル名が "*D.*
"であるすべてのファイルのサイズを取得したい特定のファイルのセットのサイズを取得するには?
これを行う簡単な方法はありますか?
(私はフォルダ全体のために知ってP.S.が、私はそのサイズを取得するために)(TotalSizeを使用することができますが、どのように私の制約とは?)
たとえば、私はフォルダ "MyFolder"を持っています そして、ファイル名が "*D.*
"であるすべてのファイルのサイズを取得したい特定のファイルのセットのサイズを取得するには?
これを行う簡単な方法はありますか?
(私はフォルダ全体のために知ってP.S.が、私はそのサイズを取得するために)(TotalSizeを使用することができますが、どのように私の制約とは?)
これを行う簡単な方法はありますか?
はい、あります。実際には単一のコード行:EnumerateFiles方法が利用できない場合、あなたが前に.NET 4.0に.NETのバージョンをターゲットにしている場合
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);
}
}
は、そして、あなたは代わりにGetFilesメソッドを使用することができます。
自分で合計を作成する方法は簡単だとは思わないでください。さまざまなアプローチがあります。例:
DirectoryInfo mydir = new DirectoryInfo();
long size = 0;
foreach(FileInfo file in mydir.GetFiles("D*"))
size += file.Length();
Directory.GetFilesは文字列[]を返します。 –
いいえ、 'FileInfo []'を返します(http://msdn.microsoft.com/en-us/library/8he88b63(v=vs.110).aspx) 'Directory'ではなく' DirectoryInfo'を使っています。 – Mario
明確にすることはできますか?ある名前のフォルダ内には複数のファイルが存在することはできませんので、その名前が何らかのパターンと一致していると仮定しています。 –
あなたが使用している.NETのバージョンについては、常に言ってください。 –
@AdamRobinson:彼は彼の '*'を引用しなかった。もう一度見てください。 –