[英]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 內置功能。 我嘗試了Uri
和Path.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.