DOBON.NET

パスからファイル名、拡張子、ディレクトリ名、ルートディレクトリ名等の情報を取得する

Pathクラスを用いることにより、ファイルのパスに関するさまざまな情報を取得することができます。たとえば、パスからファイル名、拡張子なしのファイル名、拡張子、ディレクトリ名、ルートディレクトリ名の取得や、拡張子を変更したときのパスの取得などができます。

パスからファイル名、拡張子などの情報を取得する

まずは、パス文字列からいろいろな情報を取得する例を紹介します。指定するパス文字列のファイル(あるいはフォルダ)は、存在している必要はありません。

VB.NET
コードを隠すコードを選択
'ディレクトリ名の取得
Console.WriteLine( _
    System.IO.Path.GetDirectoryName( _
        "C:\My Documents\My Pictures\サンプル.jpg"))
'結果: C:\My Documents\My Pictures

'拡張子の取得
Console.WriteLine( _
    System.IO.Path.GetExtension( _
        "C:\My Documents\My Pictures\サンプル.jpg"))
'結果: .jpg

'ファイル名の取得
Console.WriteLine( _
    System.IO.Path.GetFileName( _
        "C:\My Documents\My Pictures\サンプル.jpg"))
'結果: サンプル.jpg

'ファイル名(拡張子なし)の取得
Console.WriteLine _
    (System.IO.Path.GetFileNameWithoutExtension( _
        "C:\My Documents\My Pictures\サンプル.jpg"))
'結果: サンプル

'ルートディレクトリ名の取得
Console.WriteLine( _
    System.IO.Path.GetPathRoot( _
        "C:\My Documents\My Pictures\サンプル.jpg"))
'結果: C:\
C#
コードを隠すコードを選択
//ディレクトリ名の取得
Console.WriteLine(
    System.IO.Path.GetDirectoryName(
        @"C:\My Documents\My Pictures\サンプル.jpg"));
//結果: C:\My Documents\My Pictures

//拡張子の取得
Console.WriteLine(
    System.IO.Path.GetExtension(
        @"C:\My Documents\My Pictures\サンプル.jpg"));
//結果: .jpg

//ファイル名の取得
Console.WriteLine(
    System.IO.Path.GetFileName(
        @"C:\My Documents\My Pictures\サンプル.jpg"));
//結果: サンプル.jpg

//ファイル名(拡張子なし)の取得
Console.WriteLine
    (System.IO.Path.GetFileNameWithoutExtension(
        @"C:\My Documents\My Pictures\サンプル.jpg"));
//結果: サンプル

//ルートディレクトリ名の取得
Console.WriteLine(
    System.IO.Path.GetPathRoot(
        @"C:\My Documents\My Pictures\サンプル.jpg"));
//結果: C:\

Pathクラスのメソッドと、パラメータにいろいろな値を指定した時の結果を表にまとめると、次のようになります。「説明」の次の項目の「C:\dir\sub\f.txt」からが、パラメータとその結果です。Pathクラスのメソッドだけでなく、参考として最後にDirectoryクラスのメソッドも入れておきました。なおカレントディレクトリは"C:\cd"とします。

メソッド説明C:\dir\sub\f.txtC:\dir\sub\C:\dir\sub.\sub\f.\\pc\s\dir\f.txt
GetDirectoryNameディレクトリ名の取得C:\dir\subC:\dir\subC:\dir.\sub\\pc\s\dir
GetExtension拡張子の取得.txt.txt
GetFileNameファイル名の取得f.txtsubf.f.txt
GetFileNameWithoutExtensionファイル名(拡張子なし)の取得fsubff
GetPathRootルートディレクトリ名の取得C:\C:\C:\\\pc\s
GetFullPath絶対パスの取得C:\dir\sub\f.txtC:\dir\sub\C:\dir\subC:\cd\sub\f\\pc\s\dir\f.txt
HasExtension拡張子を持っているかTrueFalseFalseFalseTrue
IsPathRootedルートが含まれているか(詳細TrueTrueTrueFalseTrue
Directory.GetDirectoryRootボリューム、ルート情報の取得C:\C:\C:\C:\\\pc\s
Directory.GetParent親ディレクトリの取得C:\dir\subC:\dir\subC:\dirC:\cd\sub\\pc\s\dir

拡張子を変更する

この章の内容は、「ファイルの拡張子を変更する」に移動しました。

パス名を結合する

この章の内容は、「フォルダ名とファイル名を結合して絶対パスを作成する、Path.Combineメソッドの注意点」に移動しました。

  • 履歴:
  • 2006/11/20 表を追加。
  • 2010/9/17 表の項目を増やした。「拡張子を変更する」と「パス名を結合する」のサンプルを変更。
  • 2013/6/1 「拡張子を変更する」と「パス名を結合する」を別のページに移動。
  • 2016/5/14 IsPathRootedの説明を変更。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • Windows Vista以降でUACが有効になっていると、ファイルへの書き込みに失敗する可能性があります。詳しくは、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。
共有する

この記事への評価

この記事へのコメント

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。