[Tips][パス操作] パス文字列からディレクトリ情報を取得する

[ad code=2 align=left]
パス文字列からディレクトリ情報を取得するにはPathクラスGetDirectoryNameメソッドを使用します。

GetDirectoryNameメソッドは、パス文字列からファイル名を除いてディレクトリを表す文字列を返します。

下記はパス文字列からディレクトリ情報を取得する例です。

“C:\Work\Document\Test.txt”というパス文字列から”C:\Work\Document”を抜き出して表示します。

VBの例

Dim filepath As String = "C:\Work\Document\Test.txt"

'パス文字列からディレクトリ情報を取得する
Dim strDir As String = IO.Path.GetDirectoryName(filepath)

MessageBox.Show(strDir)

C#の例

string filepath = @"C:\Work\Document\Test.txt";

// パス文字列からディレクトリ情報を取得する
string strDir = System.IO.Path.GetDirectoryName(filepath);

MessageBox.Show(strDir);

[Tips][パス操作] 複数の文字列を1つのパスに結合する

PathクラスCombineメソッドを使用すると、複数の文字列を連結して1つのパス文字列を作成することができます。

Combineメソッドには下記に示すように複数のオーバーロードがあります。

メソッド名 説明
Combine(String[]) 文字配列を連結してパス文字列を作成する
Combine(String, String) 2つの文字列を連結してパス文字列を作成する
Combine(String, String, String) 3つの文字列を連結してパス文字列を作成する
Combine(String, String, String, String) 4つの文字列を連結してパス文字列を作成する

文字配列からパス文字列を作成する例(VB)

Dim strText1 As String = "C:\Work"
Dim strText2 As String = "Test.txt"

'文字列を結合してパス文字列を作成する
Dim combinedPath As String = IO.Path.Combine(strText1, strText2)

MessageBox.Show(combinedPath)

文字配列からパス文字列を作成する例(C#)

string strText1 = @"C:\Work";
string strText2 ="Test.txt";

// 文字列を結合してパス文字列を作成する
string combinedPath = System.IO.Path.Combine(strText1, strText2);

MessageBox.Show(combinedPath);

複数の文字列からパス文字列を作成する(VB)

'配列を結合してパス文字列を作成する例
Dim strText() As String = {"C:\Work", "Test.txt"}
'配列を結合してパス文字列を作成する
Dim combinedPath2 As String = IO.Path.Combine(strText)

MessageBox.Show(combinedPath2)

複数の文字列からパス文字列を作成する(C#)

// 配列を結合してパス文字列を作成する例
string[] strText = {@"C:\Work", "Test.txt"};
// 配列を結合してパス文字列を作成する
string combinedPath2 = System.IO.Path.Combine(strText);

MessageBox.Show(combinedPath2);

[Tips][パス操作] 一時フォルダーのパスを取得する

一時フォルダーのパスを取得するには、PathクラスGetTempPathメソッドを使用します。

GetTempPathメソッドは現在のユーザーの一時フォルダーのパス文字列を返します。

下記は一時フォルダーを取得する例です。

VBの例

'一時フォルダーのパスを取得する
Dim tmpPath As String = IO.Path.GetTempPath()

MessageBox.Show(tmpPath)

C#の例

// 一時フォルダーのパスを取得する
string tmpPath = System.IO.Path.GetTempPath();

MessageBox.Show(tmpPath);