#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);
            }


実行すると、デスクトップ上の何かを列挙するかも。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS