パス文字列からディレクトリ・パス部分を取り出すには?.NET TIPS

» 2006年09月15日 05時00分 公開
[一色政彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「.NET TIPS」のインデックス

連載目次

 ファイルのパス文字列(フルパス)からディレクトリ・パス(=ディレクトリ名)の部分を取り出すには、Pathクラス(System.IO名前空間)のGetDirectoryNameメソッドを使用する。

 例えば、次のように記述してこのメソッドを呼び出せば、その戻り値として「c:\windows\system32」という文字列が得られる(VBの場合の記述例)。

Path.GetDirectoryName("c:\windows\system32\notepad.exe")

 パラメータで指定したパス文字列のファイルが実際に存在するかどうかはチェックされない。このメソッドは単に、パス文字列中の最後のパス区切り文字「\」より前にある部分文字列を返すだけである。

 正確には、「\」以外にも「/」が、このメソッドではパスの区切り文字として認識される(また、ドライブ名の後に続く「:」もパスの区切り文字となる)。ただし区切り文字に識別された「/」は、(なぜか)「\」に変換されてしまうので注意が必要だ。例えば、「http://atmarkit.itmedia.co.jp/fdotnet/index.html」は、「http:\atmarkit.itmedia.co.jp\fdotnet」という戻り値になってしまうので、現実的は「/」を区切り文字として識別させてディレクトリ・パス部分を取得するようなことはできないと考えた方がよいだろう。

 次のサンプル・プログラムは、それぞれの区切り文字を含んだ3つの文字列からディレクトリ・パス部分を取り出すコンソール・アプリケーションである。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。