ファイルのフォルダー(ディレクトリ)を取得する [C#]

C#でファイルの配置されているフォルダー(ディレクトリ)を取得する方法について紹介します。
ファイルのフォルダー(ディレクトリ)を取得するには、System.IO名前空間のFileInfoクラスのDirectoryプロパティを使用するか、DirectoryNameプロパティなどを使用します。

FileInfoクラスのDirectoryプロパティで取得

FileInfoクラスのDirectoryプロパティの構文は次のようになります。

Directoryプロパティは戻り値にDirectoryInfoクラスを返します。

FileInfo.Directoryプロパティの使用例

以下にDirectoryプロパティの使用例を示します。

FileInfoクラスDirectoryNameプロパティで取得

FileInfoクラスのDirectoryNameプロパティの構文は次のようになります。

DirectoryNameプロパティは戻り値にフォルダ―(ディレクトリ)の名前(パス)を文字列で返します。

FileInfo.DirectoryNameプロパティの使用例

以下にDirectoryNameプロパティの使用例を示します。

FileInfoクラスのDirectoryプロパティ、およびFileInfoクラスDirectoryNameプロパティは、指定したファイルが存在していない場合でもフォルダー(ディレクトリ)の情報を返します。

サンプルプログラム

Windowsフォームアプリケーションでのプログラムの実装例を記載します。

ユーザーインターフェース

フォームのインターフェースは次のようにします。

フォルダー(ディレクトリ)取得サンプルフォームデザイン

「…」ボタン(button1)をクリックすると、ファイルを開くダイアログを表示して、ファイルパスをテキストボックス(textBox1)に設定できるようにします。
「button2」ボタンをクリックするとFileInfoクラスのExistsプロパティを参照して、テキストボックスに入力されているパスのファイルが存在するかどうかを確認して結果を表示します。
「button3」ボタンをクリックするとFileクラスのExists静的メソッドを呼び出して、テキストボックスに入力されているパスのファイルが存在するかどうかを確認して結果を表示します。

ソースコード

サンプルプログラムのフォームには次のようなソースコードを記述します。

サンプルの実行

作成したプログラムを実行します。

フォルダー(ディレクトリ)取得サンプルフォーム

「C:\Test\TestFolder」フォルダーを作成します。
「C:\Test\TestFolder」フォルダーに「TestFile.txt」ファイルを作成します。

作成したフォルダー(ディレクトリ)取得サンプルフォームで使用するテストファイル

ファイルのテキストボックスに「C:\Test\TestFolder\TestFile.txt」を入力するか、「…」ボタンをクリックして「C:\Test\TestFolder\TestFile.txt」を選択します。

フォルダー(ディレクトリ)取得サンプルフォームのファイルパスを入力

「button2」または「button3」をクリックします。

フォルダー(ディレクトリ)取得結果メッセージ

フォルダー(ディレクトリ)が取得されてパスが表示されます。