3

System.IO.Path.GetTempPath()関数を呼び出すプログラムを作成しました。私が読んだすべてのドキュメント(このようなもの)には、関数はこのリストから見つかった最初のパスを返す必要があると書かれています。

  • TMP 環境変数で指定されたパス。
  • TEMP 環境変数で指定されたパス。
  • USERPROFILE 環境変数で指定されたパス。
  • Windows ディレクトリ。

と の両方の環境変数を に定義しましTMPTEMP%USERPROFILE%\AppData\Local\Temp、 を呼び出すと、 と に定義した値ではなく、常に自分のディレクトリGetTempPath()が返されます。定義した一時ディレクトリを返す関数を取得するにはどうすればよいですか?%USERPROFILE%TMPTEMP

4

2 に答える 2

3

それが環境設定です。 http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx

var tmp = Environment.GetEnvironmentVariable("tmp");

更新: コマンドプロンプトに行きました

SET TMP=C:\Temp

次に、コマンド プロンプトから Visual Studio を起動しました。これで環境が更新され、ビジュアル スタジオがそれを確認できるようになりました。上記のコード(およびあなたのコード)は私にとってはうまくいきました。更新された環境設定が表示されました。

したがって、新しい環境を永続的に表示するには、エクスプローラーを強制終了するか、ログオフする必要があると思います。

于 2013-07-17T19:37:34.947 に答える
0

Visual Studio の起動後に TMP 変数と TEMP 変数を作成しましたか?

VS を再起動するか、Windows エクスプローラーからアプリケーションを実行してみてください。Windows を再起動することもできます。

環境変数は、プロセスの作成時にプロセスに割り当てられ、そのプロセスでは変更されません。また、子プロセスは親プロセスから環境変数を継承します。したがって、変数の作成前に開始された Visual Studio セッションからアプリケーションを実行すると、アプリケーションでそれらの変数を使用できなくなります。したがって、再起動が必要です。

于 2013-07-17T19:32:39.323 に答える