Hatena::Groupsubtech

ういはるかぜの化学

Wednesday, January 07, 2009

LINQ再帰してディレクトリサイズを求める 16:22  LINQ で再帰してディレクトリサイズを求める - ういはるかぜの化学 を含むブックマーク はてなブックマーク -  LINQ で再帰してディレクトリサイズを求める - ういはるかぜの化学

libatyさんの no title から。

以前自分も同じ事を考えてあれーとおもったことがあるのでもう一度書いてみました。

Func<String, Int64> GetDirectorySize = null;
GetDirectorySize = (dir) => (
                              from entry in new DirectoryInfo(dir).GetFileSystemInfos()
                              let size = ((entry is FileInfo) ? ((FileInfo)entry).Length : GetDirectorySize(entry.FullName))
                              select size
                          ).Sum();

Console.WriteLine(GetDirectorySize(@"C:\Windows\Microsoft.NET"));

どうしても再帰する都合上こうせざるを得ないっぽい。しかも一行目と二行目を合体させると未代入のうんたらになります。

オゥフ。小野@どっとねっとふぁんさんがコメントでかかれてるやつをみて再帰がいらないことに気づきました…。

トラックバック - http://subtech.g.hatena.ne.jp/mayuki/20090107