フォルダ名を引数に与えると、そのフォルダ以下のすべてのフォルダ名、ファイル名を表示するサンプルです。
引数がなにも与えられていない場合は、カレントのフォルダ以下を検索します。
-------------------------------------------------------
using System;
using System.IO;
public class Sample {
public static void Main(string[] args) {
// 引数がない場合は現在のフォルダ以下を検索
if(args.Length==0)
myTree(Environment.CurrentDirectory);
// 引数が一つあって、それがフォルダ名であれば、そのフォルダ以下を検索
else if(args.Length==1 && Directory.Exists(args[0]))
myTree(args[0]);
}
// 与えられたフォルダ以下を検索するメソッド
private static void myTree(string myPath)
{
// 現在のフォルダのパスを表示
Console.WriteLine(myPath);
// 現在のフォルダに含まれるファイルをとりだして表示
string[] files = Directory.GetFiles(myPath);
foreach(string file in files)
Console.WriteLine("\t" + Path.GetFileName(file));
// 現在のフォルダに含まれるフォルダをとりだして再帰を行う
string[] dirs = Directory.GetDirectories(myPath);
foreach(string dir in dirs)
myTree(dir);
}
}
-------------------------------------------------------
フォルダの情報を取り出すには、DirectoryクラスかDirectoryInfoクラスを利用することになります。
DirectoryInfoクラスを利用する場合はそのインスタンスを生成しなければいけないため、繰り返し同じフォルダの情報を利用するとき以外はDirectoryクラスを利用したほうが便利かと思います。
あおい情報システム株式会社 小野修司(どっとねっとふぁん)