2009-04-28 15 views
14

ローカルファイルパス(たとえばc:\foo\bar.txt)とURI(例えばhttp://somehost.com/fiz/baz)の両方を扱うユースケースがあります。私も相対パスと絶対パスの両方を扱うので、Path.Combineや友人のような機能が必要です。相対URIとローカルファイルの相対パスと絶対パスを処理するためのタイプ

私は使用すべき既存のC#タイプがありますか?Uri typeが機能するかもしれませんが、一目で見ればURIだけと思われます。

答えて

22

Uriクラスを使用すると、動作しているようです。これはUriのファイルパスを `file:/// ... '構文に変えます。これは期待どおりのURIを扱い、相対URIを扱う能力があります。そのパス

(相対URIの使用を示すように更新):。

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

ファイル:

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()); 

が私にこの出力を提供します///ことですが...不便が、もし私がそれがなければ私はそれと一緒に暮らすことができます。私は本当にそれがより直接的に何かを望んでいた+1 – BCS

+2

まあ、あなたは "LocalPath" prこれはあなたにローカルフォーマットのファイル名を与えます(file:///を除く)。 –

+0

非常に役に立ちました!迅速な答えをありがとう。 –

関連する問題