ディレクトリとファイル一覧

春Mを作る第一歩、ファイルとディレクトリ一覧を取得しないといけない。そのサンプルコード。

using System;
using System.IO;

public class dir {
  static void Main(){
    string cdir = Directory.GetCurrentDirectory();
    string[] files = Directory.GetFiles(cdir);
    string[] dirs = Directory.GetDirectories(cdir);
    foreach (string s in dirs) {
      Console.WriteLine("<" + s + ">");
    }
    foreach (string s in files) {
      Console.WriteLine(s);
    }
  }
}

実行結果

$ ./dir.exe

C:\cygwin\home\kaityo\svn\cs\dir.cs
C:\cygwin\home\kaityo\svn\cs\dir.exe

できたようだ。

ディレクトリ取得とファイル取得がGetDirectoriesとGetFilesに分かれているのは楽で良い。WinAPIではそのファイルがディレクトリかどうか別にチェックしなければいけなかった。

foreach文が使えるのは気持ちがいい。また、ガーベジコレクションがあるから、配列を直で受け取れるのも良い。こういうAPI名前空間に全部ベタに存在するんじゃなくて、Directory以下にあるのもちょっと気持ちが良い。