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

ファイル/フォルダ

System.IO.Path.GetFileName 関数

パラメータにファイルパスを設定することで、パスの中からファイル名を取得することができます。

サンプル

private string GetFileNameFromFullPath(string file)
{
    //ファイル名を取得
    return System.IO.Path.GetFileName(file);
}

こんな関数はいかがでしょうか?

System.IO.Path.GetFileName関数自体はファイル存在チェックを行いません。文字列からファイル名だと思われる個所を抜き出すだけです。

ファイル存在チェックと併用してファイルが存在しない場合は空文字を返すようにしました。

private string GetFileNameFromFullPath(string file)
{
    try
    {
        //ファイルの存在チェック
        if (System.IO.File.Exists(file) == false)
        {
            return "";
        }

        //ファイル名を取得
        return System.IO.Path.GetFileName(file);

    }
    catch(Exception ex)
    {
        //異常が発生したときは、エラーメッセージを返す
        return ex.Message;
        /*
        //異常が発生した場合も空文字を返すようにしておく
        return "";
        */
    }
}

例外発生時の対応は、お好きなほうを使っていただければと思います。

まとめ

ファイル名を取得するだけであればSystem.IO.Path.GetFileName関数だけでいいのですが、もしファイル存在チェックを行った後にファイル名を取得するようにしたい場合など、別の処理を追加するようにしたいとなった時にいろんなところにあると修正するのが大変です。そのためあらかじめ関数化しておいて修正する箇所は少なくなるようにしましょう。

サンプルのようにあらかじめ関数にしておけば追加処理は、関数の中を修正すればすべて変更されます。

コメント

タイトルとURLをコピーしました