5

重複の可能性:
マイ ドキュメントの展開環境変数

Windows XP、7、Vista、Server 2003-2008R2、および将来の Windows バージョンでは、コマンド プロンプトで %% 区切りの環境変数をよく使用します。例は次のとおりです。

%windir%
%systemroot%
%temp%

C# を使用して、これらの環境変数をプログラムで解決できる必要があります。

Environmen.SpecialFolder上記の形式で Web サービスから値を取得しており、プログラムでそれらを解決し、サーバー上のこれらのパスの物理的な場所を特定できるようにする必要があるため、提案しないでください。私のシナリオはクラスライブラリプロジェクトであり、必要としない/使用できない可能性がありますServer.MapPath

すべての環境変数をプログラムで解決し、これらの変数からコマンド プロンプトまたは Windows エクスプローラーまたは Run Command だけでローカルの物理パスを計算するのに役立つ、組み込みまたはカスタムの汎用メソッドを探しています。

StackOverFlow でこれらと同様の質問を見たことがありますが、マークされた回答が見つかりませんでした。Environment.Xxxxx Enum私が取り組んでいるシナリオには対応していないことに注意してください。

どんな助けでも大歓迎です。C# で .NET 4.0 Complete Framework Profile を使用しています。

4

2 に答える 2

13

を使用できますSystem.IO.Path.GetFullPath。例えば:

var resolvedPath = Path.GetFullPath("%WINDIR%");
または、文字列内の変数を展開するだけの場合は、[`Environment.ExpandEnvironmentVariables`](http://msdn.microsoft.com/en-us/library/system.environment.expandenvironmentvariables.aspx)を使用します。
var expanded = Environment.ExpandEnvironmentVariables(
    "This is my %WINDIR% in %SYSTEMROOT%, and temp is %TEMP%")
于 2012-11-07T17:57:17.777 に答える
9
Environment.ExpandEnvironmentVariables("%windir%\SomeFolder")
于 2012-11-07T17:59:09.773 に答える