我已經允許輸入自定義路徑,并希望默認的路徑是這樣的。
%UserProfile%/Documents/foo,當然這需要成功地決議字串,雖然它在 Windows Explorer 中可以作業,但我想知道我是否缺少一個正確決議這個字串的庫呼叫或選項。
DirectoryInfo 的建構式當然不起作用,它將 %UserProfile% 視作任何其他檔案夾名稱。
如果沒有好的方法,我將手動決議它,用實際的特殊檔案夾位置來替代 %foo%(如果它在特殊檔案夾列舉中)。
編輯。 做到我所尋找的代碼(盡管我更希望有一個適當的.NET庫呼叫):
編輯:我的代碼。
var path = @"%UserProfile%/Documents/foo"/span>;
var specialFolders = Regex.Matches(path, "%(?<possibleSpecial> . )%")。
foreach (var spec in specialFolders.AsEnumerable()
{
if (Enum.TryParse<Environment.SpecialFolder>(spec.Groups["possibleSpecial"].Value, out var sf)
{
path = Regex.Replace(path, spec.Value, Environment.GetFolderPath(sf))。
}
}
uj5u.com熱心網友回復:
在使用前在路徑上使用Environment.ExpandEnvironmentVariables。
var pathWithEnv = @"%UserProfile%/Documents/foo"/span>;
var path = Environment.ExpandEnvironmentVariables(pathWithEnv)。
//你的代碼...。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/307079.html
標籤:
