Saya memiliki file xml yang berisi jalur file href ke gambar (mis. ".... \ images \ image.jpg"). Hrefs berisi jalur relatif. Sekarang, saya perlu mengekstrak hrefs ke gambar dan mengubahnya menjadi jalur absolut dalam sistem file.
Saya tahu tentang metode GetFullPath, tetapi saya mencobanya dan tampaknya hanya berfungsi dari kumpulan CurrentDirectory, yang tampaknya C: jadi saya tidak melihat bagaimana saya bisa menggunakannya. Dan tetap saja, saya memiliki jalur absolut dari file yang berisi hrefs, dan jalur relatif href, jadi karena ini adalah tugas sederhana bagi saya untuk menghitung kembali jumlah bagian ".... \" berdasarkan jalur absolut dari file yang berisi, tampaknya harus ada cara untuk melakukan ini secara terprogram juga.
Saya berharap ada beberapa metode sederhana yang tidak saya ketahui! Ada ide?
sumber
Jawaban:
Dengan asumsi Anda mengetahui direktori sebenarnya, file XML berada dalam penggunaan Path.Combine, misalnya
var absolute_path = Path.Combine(directoryXmlLivesIn, "..\images\image.jpg");
Jika Anda ingin mendapatkan kembali jalur lengkap dengan apa pun .. yang diciutkan maka Anda dapat menggunakan:
Path.GetFullPath((new Uri(absolute_path)).LocalPath);
sumber
(new Uri(absolute_path)).LocalPath
melakukan hal yang sama seperti yangPath.GetFullPath(absolute_path)
satu atau yang lainnya sudah cukup.Gets a local operating-system representation of a file name.
jadi dalam kasus ini, tidak ada penanganan khusus yang diharapkan.string exactPath = Path.GetFullPath(yourRelativePath);
bekerja
sumber
Ini berhasil.
var s = Path.Combine(@"C:\some\location", @"..\other\file.txt"); s = Path.GetFullPath(s);
sumber
Ini cara terbaik untuk mengubah jalur Relatif ke jalur absolut!
string absolutePath = System.IO.Path.GetFullPath(relativePath);
sumber
Anda dapat menggunakan Path.Combine dengan jalur "base", lalu GetFullPath pada hasil.
string absPathContainingHrefs = GetAbsolutePath(); // Get the "base" path string fullPath = Path.Combine(absPathContainingHrefs, @"..\..\images\image.jpg"); fullPath = Path.GetFullPath(fullPath); // Will turn the above into a proper abs path
sumber
Sudahkah Anda mencoba
Server.MapPath
metode. Berikut ini contohnyastring relative_path = "/Content/img/Upload/Reports/59/44A0446_59-1.jpg"; string absolute_path = Server.MapPath(relative_path); //will be c:\users\.....\Content\img\Upload\Reports\59\44A0446_59-1.jpg
sumber
Ini berhasil untuk saya.
//used in an ASP.NET MVC app private const string BatchFilePath = "/MyBatchFileDirectory/Mybatchfiles.bat"; var batchFile = HttpContext.Current.Server.MapPath(BatchFilePath);
sumber
Kunjungi
Path.Combine
http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspxsumber