#freeze
[[.NET]]
え、うちの書き方って古いの?
……うーんわかった、書き直しましょう。
特定ディレクトリ以下を全て吐き出すものだけど、以下は古いらしいわ。
* 古い書き方 [#r9ebe41a]
private static List<string> getListDir(string dir)
{
List<string> r = new List<string>();
foreach (String f in Directory.GetFileSystemEntries(dir))
{
if (File.GetAttributes(f) == FileAttributes.Directory)
{
r.AddRange(getListDir(f));
}
else
{
r.Add(f);
}
}
return (r);
}
* 新しい書き方 [#x731df80]
表現は色々あると思うけど、.NET3.5以上と考えると妥当なのはこのあたりかしら?
string basedir = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
DirectoryInfo di = new DirectoryInfo(basedir);
FileInfo[] files = di.GetFiles("*",SearchOption.AllDirectories);
foreach (FileInfo f in files)
{
Console.WriteLine("{0},",f.FullName);
}
実行すると、デスクトップ上の何かを列挙するかも。