簡體   English   中英

如何結合文件絕對和相對uri或路徑?

[英]How to combine file absolute and relative uri or path?

我想要實現的是一個組合 function ,它采用一個絕對路徑/uri 和一個相對路徑/uri 並返回兩者的組合。 例如,考慮以下兩條路徑:

var root = "c:\src";
var images = "/images/logo.png" ;
var combined = Combine (root, images); // Either 'c:/src/images/logo.png' or 'c:\src\images\logo.png' is acceptable

我想避免手動操作/攔截正斜杠和反斜杠,並且我想堅持使用 .Net 內置功能。 我嘗試了UriPath.Combine但沒有運氣。 最大的問題是images以正斜杠開頭,但我想必須有一種方法告訴.Net 將其視為相對於絕對路徑。

我不知道有任何內置功能可以按照您想要的方式執行此操作。

考慮到這一點,您似乎應該能夠刪除前導斜杠:

var root = "c:\\src";
var sourceOfImages = "/images/logo.png";
var images = sourceOfImages.TrimStart('/', '\\');
var combined = Path.Combine(root, images);

現在這確實導致 output 具有不同格式的閃存:

c:\src\images/logo.png

我建議使用字符串Replace來解決這個問題:

var combined = Path.Combine(root, images).Replace("/", "\\"); // or .Replace("\\", "/");

這會像我們期望的那樣輸出路徑:

c:\src\images\logo.png

在線嘗試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM