web-dev-qa-db-ja.com

パス文字列から最後のフォルダーを取得するにはどうすればよいですか?

次のようなディレクトリがあります。

C:\Users\me\Projects\

私のアプリケーションでは、特定のプロジェクト名をそのパスに追加します。

C:\Users\me\Projects\myProject

その後、それをメソッドに渡したいと思います。このメソッド内では、プロジェクト名も使用したいと思います。パス文字列を解析して最後のフォルダー名を取得する最良の方法は何ですか?

回避策はパスとプロジェクト名を関数に渡すことですが、1つのパラメーターに制限できることを望んでいました。

17
AdamMc331

できるよ:

string dirName = new DirectoryInfo(@"C:\Users\me\Projects\myProject\").Name;

またはPath.GetFileNameのように(ちょっとしたハックで)を使用します:

string dirName2 = Path.GetFileName(
              @"C:\Users\me\Projects\myProject".TrimEnd(Path.DirectorySeparatorChar));

Path.GetFileName は、パスからファイル名を返します。パスが\で終了している場合、空の文字列を返すため、TrimEnd(Path.DirectorySeparatorChar)

41
Habib
string path = @"C:\Users\me\Projects\myProject";
string result = System.IO.Path.GetFileName(path);

結果= myProject

2
Alex Anderson