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 Path
dan FileInfo
keduanya ditemukan di namespace System.IO
.
new FileInfo(path).Directory.FullName
harus 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, FileInfo
mungkin ada kelebihannya.
Anda dapat menggunakan Path.GetDirectoryName
dan hanya memasukkan nama file.
Jika Anda bekerja dengan FileInfo
objek, maka ada cara mudah untuk mengekstrak string
representasi path lengkap direktori melalui DirectoryName
properti.
Deskripsi FileInfo.DirectoryName
Properti 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.GetFullPath
sebagian 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 directory
seperti"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 Path
metode khusus .
Path.GetDirectoryName (Context.Parameters ["assemblypath"])
Path.GetDirectoryName
disebutkan dalam banyak jawaban lain (termasuk jawaban yang diterima)
@"C:\MyDirectory\MyFile.bat"