Pathクラスを用いることにより、ファイルのパスに関するさまざまな情報を取得することができます。たとえば、パスからファイル名、拡張子なしのファイル名、拡張子、ディレクトリ名、ルートディレクトリ名の取得や、拡張子を変更したときのパスの取得などができます。
まずは、パス文字列からいろいろな情報を取得する例を紹介します。指定するパス文字列のファイル(あるいはフォルダ)は、存在している必要はありません。
'ディレクトリ名の取得 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:\
//ディレクトリ名の取得 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.txt | C:\dir\sub\ | C:\dir\sub | .\sub\f. | \\pc\s\dir\f.txt |
---|---|---|---|---|---|---|
GetDirectoryName | ディレクトリ名の取得 | C:\dir\sub | C:\dir\sub | C:\dir | .\sub | \\pc\s\dir |
GetExtension | 拡張子の取得 | .txt | .txt | |||
GetFileName | ファイル名の取得 | f.txt | sub | f. | f.txt | |
GetFileNameWithoutExtension | ファイル名(拡張子なし)の取得 | f | sub | f | f | |
GetPathRoot | ルートディレクトリ名の取得 | C:\ | C:\ | C:\ | \\pc\s | |
GetFullPath | 絶対パスの取得 | C:\dir\sub\f.txt | C:\dir\sub\ | C:\dir\sub | C:\cd\sub\f | \\pc\s\dir\f.txt |
HasExtension | 拡張子を持っているか | True | False | False | False | True |
IsPathRooted | ルートが含まれているか(詳細) | True | True | True | False | True |
Directory.GetDirectoryRoot | ボリューム、ルート情報の取得 | C:\ | C:\ | C:\ | C:\ | \\pc\s |
Directory.GetParent | 親ディレクトリの取得 | C:\dir\sub | C:\dir\sub | C:\dir | C:\cd\sub | \\pc\s\dir |
この章の内容は、「ファイルの拡張子を変更する」に移動しました。
この章の内容は、「フォルダ名とファイル名を結合して絶対パスを作成する、Path.Combineメソッドの注意点」に移動しました。