그런 일이 없다는 말을 듣고 나는 매우 간단한 버전을 썼다. 누구든지 어떤 제안이라도 있으면, 그것은 굉장 할 것입니다!
이 메서드는 찾을 수있는 가장 긴 환경 변수로 대체합니다.
public static class EnvironmentExtension
{
public static string ContractEnvironmentVariables(string path)
{
path = Path.GetFullPath(path).ToUpperInvariant();
DictionaryEntry currentEntry = new DictionaryEntry("","");
foreach (object key in Environment.GetEnvironmentVariables().Keys)
{
string value = (string)Environment.GetEnvironmentVariables()[key];
if (path.Contains(value.ToUpperInvariant()) && value.Length > ((string)currentEntry.Value).Length)
{
currentEntry.Key = (string)key;
currentEntry.Value = value;
}
}
return path.Replace((string)currentEntry.Value, "%" + (string)currentEntry.Key + "%");
}
}
는 :(이런 사람이 ... 아 글쎄, 생각 나는 그것을 할 자신을 해 :) – r0nny1l