C#プチリファレンス

C# ディレクトリ操作

C#でディレクトリを操作するサンプル集です。

System.IO.Directoryクラスを使う静的版と、System.IO.DirectoryInfoクラスを使うインスタンス版が用意されていますが、どちらを使っていただいても機能に差はありません。

ディレクトリ存在チェック

(例)"c:\temp"ディレクトリが存在するかチェックする

【System.IO.Directory版】
bool b = System.IO.Directory.Exists(@"c:\temp");
【System.IO.DirectoryInfo版】
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\temp");
bool b = di.Exists;

※ファイルの存在チェックは「ファイル操作」ページを参照ください。

ディレクトリを作成する

(例)"c:\temp"ディレクトリを作成する

【System.IO.Directory版】
System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(@"c:\temp");

※戻り値として、System.IO.DirectoryInfo が返ります。

【System.IO.DirectoryInfo版】
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\temp");
di.Create();

※例えば、c:\hoge1\hoge2\hoge3\ というディレクトリを作成する場合、hoge1,hoge2ディレクトリが存在しない場合でもこれらディレクトリも自動で作成されます。

ディレクトリ名をリネームする

(例)"c:\temp"ディレクトリを"c:\temp2"ディレクトリにリネームする

【System.IO.Directory版】
DirectoryInfo.Move(@"c:\temp", @"c:\temp2");
【System.IO.DirectoryInfo版】
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\temp");
di.MoveTo(@"c:\temp2");

ディレクトリを削除する

(例)"c:\temp"ディレクトリを削除する

【System.IO.Directory版】
// 配下のディレクトリを再帰的に削除しない場合
Directory.Delete(@"c:\temp");

// 配下のディレクトリを再帰的に削除する場合
Directory.Delete(@"c:\temp", true);
【System.IO.DirectoryInfo版】
DirectoryInfo di = new DirectoryInfo(@"c:\temp");

// 配下のディレクトリを再帰的に削除しない場合
di.Delete();

// 配下のディレクトリを再帰的に削除する場合
di.Delete(true);

フォルダ配下のディレクトリ名一覧を取得する

例)"c:\hoge"フォルダ配下のディレクトリ一覧を取得する
using System.IO;

FileInfo fi = new FileInfo(@"c:\hoge");
string[] dirArray = fi.GetDirectories(@"*");

※ディレクトリ名とファイル名を同時に取得したい場合は、GetFileSystemInfosメソッドで取得できます。

ToTop