[Tips][パス操作] パス名に使用できない文字が含まれていないか確認する

パス名に使用できない文字が含まれていないか確認するには、PathクラスGetInvalidPathCharsメソッドを使用します。

このメソッドは、指定したパス文字列内に含まれている”パスに使用できない文字配列”を返します。

下記は、使用できない文字を見つけるごとにメッセージボックスに表示する例です。

VBの例

Dim filepath As String = "C:\<>Work\Test.txt"
'使用できない文字を取得
Dim invalidPathChars As Char() = System.IO.Path.GetInvalidPathChars()

For Each invalidChar As Char In invalidPathChars
    If filepath.IndexOf(invalidChar) > -1 Then
        MessageBox.Show("使用できない文字 " & invalidChar.ToString() & " が含まれています。")
    End If
Next

 

C#の例

string filepath = @"C:\<>Work\Test.txt";
// 使用できない文字を取得
char[] invalidPathChars = System.IO.Path.GetInvalidPathChars();

foreach (char invalidChar in invalidPathChars)
{
    if (filepath.IndexOf(invalidChar) > -1)
        MessageBox.Show("使用できない文字 " + invalidChar.ToString() + " が含まれています。");
}

[Tips][パス操作] 指定したパス文字列から絶対パスを取得する

指定したパス文字列から絶対パスを取得するには、PathクラスGetFullPathメソッドを使用します。GetFullPathメソッドは、現在のディレクトリと現在のボリュームの情報を使用して絶対パス文字列を取得します。

下記は指定したパス文字列から絶対パスを取得する例です。

VBの例

Dim filepath As String = "Test.txt"

'フルパスを取得(現在のディレクトリがC:\WorkだとするとC:\Work\Test.txtを返す)
Console.WriteLine(System.IO.Path.GetFullPath(filepath))

C#の例

string filepath = @"Test.txt";

//フルパスを取得(現在のディレクトリがC:\WorkだとするとC:\Work\Test.txtを返す)
Console.WriteLine(System.IO.Path.GetFullPath(filepath));

[Tips][パス操作] 指定したパス文字列からファイル名を取得する

指定したパス文字列からファイル名(拡張子を含む)を取得するには、System.IO名前空間にあるPathクラスGetFileNameメソッドを使用します。

下記は、パス文字列からファイル名を取得してメッセージボックスに表示する例です。

VBの例

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

'パス文字列からファイル名を取得して表示する
MessageBox.Show(IO.Path.GetFileName(targetPath))

C#の例

string targetPath = @"C:\Work\test.txt";

// パス文字列からファイル名を取得して表示する
MessageBox.Show(System.IO.Path.GetFileName(targetPath));