アプリケーションのフルパスからフォルダー名を取得するにはどうすればよいですか?
これは以下のファイルパスです。
c:\projects\root\wsdlproj\devlop\beta2\text
ここで、「テキスト」はフォルダ名です。
このパスからそのフォルダ名を取得するにはどうすればよいですか?
DirectoryInfo.Name を参照してください:
string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
ファイルパスから親フォルダ名を取得したいと思います。簡単に入手できます。 1つの方法は、FileInfo
型オブジェクトを作成し、そのDirectory
プロパティを使用することです。
例:
FileInfo fInfo = new FileInfo("c:\projects\roott\wsdlproj\devlop\beta2\text\abc.txt");
String dirName = fInfo.Directory.Name;
これを試して
var myFolderName = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
var result = Path.GetFileName(myFolderName);
これを使用できます:
string path = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
string lastDirectory = path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last();
単にPath.GetFileName
を使用します
ここ-フォルダーのフルパスからフォルダー名を抽出します。
string folderName = Path.GetFileName(@"c:\projects\root\wsdlproj\devlop\beta2\text");//Return "text"
余分なものがあります-ファイルのフルパスからフォルダー名を抽出します。
string folderName = Path.GetFileName(Path.GetDirectoryName(@"c:\projects\root\wsdlproj\devlop\beta2\text\GTA.exe"));//Return "text"
Text.txtがディレクトリなのかファイルなのかを確認するためにファイルシステムに移動する以外に方法はないと考えました。シンプルなものが必要な場合は、次のように使用できます。
s.Substring(s.LastIndexOf(@"\"));
この場合、取得するファイルはstrpath変数に保存されます。
string strPath = Server.MapPath(Request.ApplicationPath) + "/contents/member/" + strFileName;
DirectoryInfoオブジェクトを作成せずに私のために働いた代替方法を次に示します。重要な点は、パスに末尾のスラッシュがない場合にGetFileName()
が機能することです。
var name = Path.GetFileName(path.TrimEnd(Path.DirectorySeparatorChar));
例:
var list = Directory.EnumerateDirectories(path, "*")
.Select(p => new
{
id = "id_" + p.GetHashCode().ToString("x"),
text = Path.GetFileName(p.TrimEnd(Path.DirectorySeparatorChar)),
icon = "fa fa-folder",
children = true
})
.Distinct()
.OrderBy(p => p.text);
これも同様に行うことができます。
var directoryName = System.IO.Path.GetFileName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
using static System.IO.Path;
var dir = GetFileName(path?.TrimEnd(DirectorySeparatorChar, AltDirectorySeparatorChar));
。NETソース からのGetFileName
の説明::
指定されたパスの名前と拡張部分を返します。結果の文字列には、パス内の最後のバックスラッシュ( "\")、スラッシュ( "/")、またはコロン( ":")文字に続くパスの文字が含まれます。末尾のスラッシュ、スラッシュ、またはコロン文字を削除した後、パスにバックスラッシュが含まれていない場合、結果の文字列はパス全体になります。パスがnullの場合、結果の文字列はnullです。