Jawaban:
Lihat DirectoryInfo.Name :
string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
Saya pikir Anda ingin mendapatkan nama folder induk dari jalur file. Mudah didapat. Salah satu caranya adalah dengan membuat FileInfo
objek tipe dan menggunakan Directory
propertinya.
Contoh:
FileInfo fInfo = new FileInfo("c:\projects\roott\wsdlproj\devlop\beta2\text\abc.txt");
String dirName = fInfo.Directory.Name;
Coba ini
var myFolderName = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
var result = Path.GetFileName(myFolderName);
@"c:\projects\roott\wsdlproj\devlop\beta2\text\"
Anda bisa menggunakan ini:
string path = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
string lastDirectory = path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last();
StringSplitOptions.RemoveEmptyEntries
berhasil.
Cukup gunakan Path.GetFileName
Di sini - Ekstrak nama folder dari jalur lengkap folder:
string folderName = Path.GetFileName(@"c:\projects\root\wsdlproj\devlop\beta2\text");//Return "text"
Berikut ini beberapa tambahan - Ekstrak nama folder dari jalur lengkap file:
string folderName = Path.GetFileName(Path.GetDirectoryName(@"c:\projects\root\wsdlproj\devlop\beta2\text\GTA.exe"));//Return "text"
Saya pikir tidak ada cara kecuali masuk ke sistem file untuk mengetahui apakah text.txt adalah direktori atau hanya sebuah file. Jika Anda menginginkan sesuatu yang sederhana, mungkin Anda bisa menggunakan:
s.Substring(s.LastIndexOf(@"\"));
Berikut adalah metode alternatif yang berfungsi untuk saya tanpa harus membuat objek DirectoryInfo. Poin kuncinya adalah itu GetFileName()
berfungsi ketika tidak ada garis miring di jalur.
var name = Path.GetFileName(path.TrimEnd(Path.DirectorySeparatorChar));
Contoh:
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);
Ini juga bisa dilakukan seperti itu;
var directoryName = System.IO.Path.GetFileName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
Berdasarkan jawaban sebelumnya (tapi tetap)
using static System.IO.Path;
var dir = GetFileName(path?.TrimEnd(DirectorySeparatorChar, AltDirectorySeparatorChar));
Penjelasan GetFileName
dari sumber NET :
Mengembalikan nama dan bagian ekstensi dari jalur yang diberikan. String yang dihasilkan berisi karakter jalur yang mengikuti karakter garis miring terbalik ("\"), garis miring ("/"), atau titik dua (":") terakhir di jalur. String yang dihasilkan adalah seluruh jalur jika jalur tidak berisi garis miring terbalik setelah menghapus karakter garis miring, garis miring, atau titik dua. String yang dihasilkan adalah null jika path null.
Path.GetDirectoryName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
c:\projects\roott\wsdlproj\devlop\beta2
, dan bukan itu yang diinginkan OP.