Apa cara paling sederhana untuk mendapatkan direktori tempat suatu file berada? Saya menggunakan ini untuk mengatur direktori kerja.
string filename = @"C:\MyDirectory\MyFile.bat";
Dalam contoh ini, saya harus mendapatkan "C: \ MyDirectory".
Apa cara paling sederhana untuk mendapatkan direktori tempat suatu file berada? Saya menggunakan ini untuk mengatur direktori kerja.
string filename = @"C:\MyDirectory\MyFile.bat";
Dalam contoh ini, saya harus mendapatkan "C: \ MyDirectory".
Jawaban:
Jika Anda benar-benar memiliki jalur absolut, gunakan Path.GetDirectoryName(path).
Jika Anda mungkin hanya mendapatkan nama relatif, gunakan new FileInfo(path).Directory.FullName.
Perhatikan bahwa Pathdan FileInfokeduanya ditemukan di namespace System.IO.
new FileInfo(path).Directory.FullNameharus bekerja dalam kedua kasus.
Anda dapat menggunakan System.IO.Path.GetDirectory(filename), atau mengubah jalur menjadi FileInfo, dan menggunakan FileInfo.Directory.
Jika Anda melakukan hal-hal lain dengan jalan, FileInfomungkin ada kelebihannya.
Anda dapat menggunakan Path.GetDirectoryNamedan hanya memasukkan nama file.
Jika Anda bekerja dengan FileInfoobjek, maka ada cara mudah untuk mengekstrak stringrepresentasi path lengkap direktori melalui DirectoryNameproperti.
Deskripsi FileInfo.DirectoryNameProperti melalui MSDN:
Mendapat string yang mewakili path lengkap direktori.
Penggunaan sampel:
string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:\MyDirectory"
Tautan ke dokumentasi MSDN .
Anda bisa mendapatkan Jalur Aplikasi saat ini menggunakan:
string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
Semoga berhasil!
Anda dapat menggunakan Path.GetFullPathsebagian besar kasus. Tetapi jika Anda ingin mendapatkan path juga dalam hal nama file relatif terletak maka Anda dapat menggunakan metode generik di bawah ini:
string GetPath(string filePath)
{
return Path.GetDirectoryName(Path.GetFullPath(filePath))
}
Sebagai contoh:
GetPath("C:\Temp\Filename.txt") kembali "C:\Temp\"
GetPath("Filename.txt")kembali current working directoryseperti"C:\Temp\"
Dalam kasus saya, saya perlu menemukan nama direktori path lengkap (dari direktori) jadi saya lakukan:
var dirName = path.Split('\\').Last();
"C:\MyDirectory"dan tidak MyDirectory. Saran untuk menggunakan metode manipulasi string berisiko, ada banyak perangkap, daripada menggunakan Pathmetode khusus .
Path.GetDirectoryName (Context.Parameters ["assemblypath"])
Path.GetDirectoryNamedisebutkan dalam banyak jawaban lain (termasuk jawaban yang diterima)
@"C:\MyDirectory\MyFile.bat"