今回はC#でファイルパスからファイル名をカンタンに抜き出す方法を紹介します。
変換のやり方はC#の標準ライブラリのPathクラスを使うことでわずか一行で処理できます。
今までファイルパスを文字列処理して、「\」文字で文字列分割してとか面倒くさいことしていた人はこのやり方を覚えていってくださいね。
PathクラスのGetFileNameメソッドを使う
C#の標準ライブラリではファイルパス関連の便利な処理が集約されたPathクラスというのが用意されています。
Pathクラスでは様々なファイルパスの処理が行えますが、その中でGetFileNameメソッドというのがあるのでそれを使います。
Path.GetFileName仕様
以下Microsoftサイトより↓
1 |
public static string GetFileName (string path); |
パラメーター
- path: string型
ファイル名と拡張子の取得元のパス文字列。
戻り値
string型
pathの最後のディレクトリ文字の後ろの文字。 pathの最後の文字がディレクトリ区切り記号またはボリューム区切り記号の場合、このメソッドはEmptyを返します。 pathがnullの場合、このメソッドはnullを返します。
サンプルソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System; using System.Text; using System.IO; namespace ParseFileNameApp { class Program { static void Main(string[] args) { string fileName = Path.GetFileName(@"C:work\sample.txt"); Console.WriteLine(fileName); } } } |
出力結果
1 |
sample.txt |
Path.GetFileNameで引数にstring型のファイルパス文字列を渡すと、戻り値でstring型のファイル名が返る仕様になっています。
1行でカンタンに処理できますね。
使用する際の注意点
1行で処理できるのでカンタンですが、以下2つが注意点です。
- 使用する際はSystem.IOのusingを忘れずに追加する
- 引数にPath.GetInvalidPathChars();で取得できる文字を使用している場合、ArgumentExceptionの例外が発生します。
SPONSORED LINK
SPONSORED LINK