.NET

え、うちの書き方って古いの?

……うーんわかった、書き直しましょう。

特定ディレクトリ以下を全て吐き出すものだけど、以下は古いらしいわ。

古い書き方

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

新しい書き方

表現は色々あると思うけど、.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
Last-modified: 2016-02-15 (月) 16:21:44