C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > C# サンプル集目次 >
パスからファイル名・フォルダー名などを得る
2020/8/16
参考:Pathクラスでパスの取得するメソッドの概要
パスからファイル名を取得する
string fileName
= System.IO.Path.GetFileName(@"C:\Windows\System32\calc.exe"); System.Diagnostics.Debug.WriteLine(fileName); // calc.exe と表示されます。 |
- 存在しないパスも対象にできます。
- 相対パスも対象にできます。
パスから親フォルダーのパスを取得する
string
folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\System32\calc.exe"); System.Diagnostics.Debug.WriteLine(folderPath); // C:\Windows\System32 と表示されます。 |
- 存在しないパスも対象にできます。
- 相対パスも対象にできます。
フォルダーの親フォルダーを取得するのにも使用できます。
string
folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319"); System.Diagnostics.Debug.WriteLine(folderPath); // C:\Windows\Microsoft.NET\Framework と表示されます。 |
- 存在しないパスも対象にできます。
- 相対パスも対象にできます。
パスから親フォルダーの名前を取得する
string
folderPath = System.IO.Path.GetDirectoryName(@"C:\Windows\System32\calc.exe"); string folderName = System.IO.Path.GetFileName(folderPath); System.Diagnostics.Debug.WriteLine(folderName); // System32 と表示されます。 |
- 存在しないパスも対象にできます。
- 相対パスも対象にできますが、 .. などは「..」という名前のフォルダー名とみなされます。
フォルダーの親フォルダーを取得するのにも使用できます。
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 と表示されます。 |
- 存在しないパスも対象にできます。
- 相対パスも対象にできますが、 .. などは「..」という名前のフォルダー名とみなされます。
パスから拡張子を除いたファイル名を取得する
string fileName
= System.IO.Path.GetFileNameWithoutExtension(@"C:\Windows\System32\calc.exe"); System.Diagnostics.Debug.WriteLine(fileName); // calc と表示されます。 |
- 存在しないパスも対象にできます。
- 相対パスも対象にできます。
パスからファイルの拡張子を取得する
string
extension = System.IO.Path.GetExtension(@"C:\Windows\System32\calc.exe"); System.Diagnostics.Debug.WriteLine(extension); // .exe と表示されます。 |
- 結果には . が付きます。
- webform1.aspx.vb のように . が2つ以上ある場合でも、最後の部分だけを取得します。(この例では「.vb」)
- 拡張子がない場合 空文字を返します。
- 存在しないパスも対象にできます。
- 相対パスも対象にできます。
Pathクラスは実行するOSのファイルシステムの規則に基づいてパスを解析します。 たとえば、Linuxで実行すると、Linux用のパス ( /etc/debian_version など) を解析できますが、Windows用のパスは解析できません。 Windowsで実行するとWindows用のパスは解析できますが、Linux用のパスは解析できません。 |