2009-04-28 14 views
14

Hem yerel dosya yollarıyla (örneğin, c:\foo\bar.txt) ve URI'lerle (örneğin, http://somehost.com/fiz/baz) ilgileneceğim bir kullanım durumlarım var. Ayrıca hem göreli hem de mutlak yollarla uğraşıyorum, böylece Path.Combine ve arkadaşları gibi işleve ihtiyacım var.göreli ve mutlak URI'leri ve yerel dosya yollarını işlemek için C# tipi

Kullanmam gereken bir C# tipi var mı?Uri type çalışabilir, ancak geçen bir bakışta, yalnızca URI görünüyor.

cevap

22

Uri sınıfını kullanarak çalışıyor gibi görünüyor. Herhangi bir dosya yolunu Uri'deki `file: /// ... 'sözdizimine çevirir.İlgili bir URI'yi beklendiği gibi işler ve göreceli URI'lerle başa çıkma kapasitesine sahiptir. o yolun

(göreceli Uri en kullanımını göstermek için Güncellendi):.

file:///c:/temp/myfile.bmp 
file:///c:/temp/woohoo/temp.bmp 
http://www.google.com/blahblah.html 
+0

file:

string fileName = @"c:\temp\myfile.bmp"; string relativeFile = @".\woohoo\temp.bmp"; string addressName = @"http://www.google.com/blahblah.html"; Uri uriFile = new Uri(fileName); Uri uriRelative = new Uri(uriFile, relativeFile); Uri uriAddress = new Uri(addressName); Console.WriteLine(uriFile.ToString()); Console.WriteLine(uriRelative.ToString()); Console.WriteLine(uriAddress.ToString()); 

bana bu çıktıyı verir /// şeydir ... sakıncalı ama Gerekirse onunla yaşayabilirim. Gerçekten bunun için daha doğrudan bir şey ayarlamayı umuyordum +1 – BCS

+2

İyi, "LocalPath" pr'yi inceleyebilirsiniz. Yerel formatta dosya adını verecek operty (dosya: /// olmadan). –

+0

Çok yardımcı! Hızlı cevap için teşekkürler. –

İlgili konular