我有一種情況,我需要通過讀取註冊表設置來返回目錄路徑。註冊表值返回我的路徑格式如何在.NET中擴展環境變量%CommonProgramFiles% system
%CommonProgramFiles%\System\web32.dll
而消費代碼格式
C:\Program Files\Common Files\System\web32.dll
期待它怎麼能在我的.NET代碼解決這樣的目錄路徑?
我有一種情況,我需要通過讀取註冊表設置來返回目錄路徑。註冊表值返回我的路徑格式如何在.NET中擴展環境變量%CommonProgramFiles% system
%CommonProgramFiles%\System\web32.dll
而消費代碼格式
C:\Program Files\Common Files\System\web32.dll
期待它怎麼能在我的.NET代碼解決這樣的目錄路徑?
Environment.ExpandEnvironmentVariables
。如果您控制註冊表值的創建,請將其作爲可擴展字符串存儲在註冊表中,並且註冊表API將自動爲您擴展它。
可以使用Environment.GetEnvironmentVariable
功能:
string commonDir = Environment.GetEnvironmentVariable("CommonProgramFiles");
然後可以使用Path.Combine
到路徑的其餘部分追加:
string fullPath = Path.Combine(commonDir, "System", "web32.dll");
另一種選擇是使用Environment.ExpandEnvironmentVariables
。這將與他們的價值觀取代所有的環境變量:
string fullPath = Environment.ExpandEnvironmentVariables("%CommonProgramFiles%\System\web32.dll");
當然,覆蓋'Path.Combine'只能在框架的v4中使用 – 2010-04-25 08:07:17
我需要一個完整的目錄路徑,它可以是任何其它的環境變量,而不僅僅是%COMMONPROGRAMFILES% – Faisal 2010-04-25 07:11:50
我不明白您的評論,@Faisal。 'ExpandEnvironmentVariables'將擴展它在你提供的字符串中看到的任何環境變量,並且會在你引用問題的特定情況下產生一個完整路徑。 – 2010-04-25 07:17:39
行得通。謝謝 – Faisal 2010-04-25 07:20:03