ヘッダー
C# サンプル集
 

パスからファイル名・フォルダー名などを得る

2020/8/16

→ Visual Basic のサンプルに切り替える

 

参考:Pathクラスでパスの取得するメソッドの概要

Pathクラスから取得できるパスの概要

 

 

パスからファイル名を取得する

string fileName = System.IO.Path.GetFileName(@"C:\Windows\System32\calc.exe");

System.Diagnostics.Debug.WriteLine(fileName); // calc.exe と表示されます。

Debug.WriteLineが表示される場所

パスからファイル名を取得

  • 存在しないパスも対象にできます。
  • 相対パスも対象にできます。

 

 

パスから親フォルダーのパスを取得する

string folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\System32\calc.exe");

System.Diagnostics.Debug.WriteLine(folderPath); // C:\Windows\System32 と表示されます。

Debug.WriteLineが表示される場所

パスから親フォルダーのパスを取得

  • 存在しないパスも対象にできます。
  • 相対パスも対象にできます。

 

フォルダーの親フォルダーを取得するのにも使用できます。

string folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319");

System.Diagnostics.Debug.WriteLine(folderPath); // C:\Windows\Microsoft.NET\Framework と表示されます。

Debug.WriteLineが表示される場所

  • 存在しないパスも対象にできます。
  • 相対パスも対象にできます。

 

 

パスから親フォルダーの名前を取得する

string folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\System32\calc.exe");
string folderName = System.IO.Path.GetFileName(folderPath);

System.Diagnostics.Debug.WriteLine(folderName); // System32 と表示されます。

Debug.WriteLineが表示される場所

パスから親フォルダーの名前を取得

  • 存在しないパスも対象にできます。
  • 相対パスも対象にできますが、 .. などは「..」という名前のフォルダー名とみなされます。

 

フォルダーの親フォルダーを取得するのにも使用できます。

string folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319");
string folderName = System.IO.Path.GetFileName(folderPath);

System.Diagnostics.Debug.WriteLine(folderName); // Framework と表示されます。

Debug.WriteLineが表示される場所

  • 存在しないパスも対象にできます。
  • 相対パスも対象にできますが、 .. などは「..」という名前のフォルダー名とみなされます。

 

 

パスから拡張子を除いたファイル名を取得する

string fileName = System.IO.Path.GetFileNameWithoutExtension(@"C:\Windows\System32\calc.exe");

System.Diagnostics.Debug.WriteLine(fileName); // calc と表示されます。

Debug.WriteLineが表示される場所

パスから拡張子を除いたファイル名を取得

  • 存在しないパスも対象にできます。
  • 相対パスも対象にできます。

 

 

パスからファイルの拡張子を取得する

string extension = System.IO.Path.GetExtension(@"C:\Windows\System32\calc.exe");

System.Diagnostics.Debug.WriteLine(extension); // .exe と表示されます。

Debug.WriteLineが表示される場所

パスから拡張子を取得

  • 結果には . が付きます。
  • webform1.aspx.vb のように . が2つ以上ある場合でも、最後の部分だけを取得します。(この例では「.vb」)
  • 拡張子がない場合 空文字を返します。
  • 存在しないパスも対象にできます。
  • 相対パスも対象にできます。

 

メモ メモ  -  OSの違い

Pathクラスは実行するOSのファイルシステムの規則に基づいてパスを解析します。

たとえば、Linuxで実行すると、Linux用のパス ( /etc/debian_version など) を解析できますが、Windows用のパスは解析できません。

Windowsで実行するとWindows用のパスは解析できますが、Linux用のパスは解析できません。