web-dev-qa-db-ja.com

一時フォルダーへのファイルの書き込み

StreamWriterを使用して、一時フォルダーにファイルを書き込みたい。

各PCで異なるパスになる可能性があるため、%temp%\SaveFile.txtを使用してみましたが、機能しませんでした。

環境変数を使用して一時フォルダーに保存するにはどうすればよいですか?

また、たとえば、%appdata%にファイルを保存するために環境変数を使用できますか?

53
BlueRay101
87
EkoostikMartin

ここでは、Pathクラスが非常に便利です。
2つのメソッドが呼び出されます

Path.GetTempFileName

Path.GetTempPath

それはあなたの問題を解決する可能性があります

たとえば、次のように書くことができます:(正確なファイル名を気にしない場合)

using(StreamWriter sw = new StreamWriter(Path.GetTempFileName()))
{
     sw.WriteLine("Your error message");
}

または、ファイル名を設定する必要がある場合

string myTempFile = Path.Combine(Path.GetTempPath(), "SaveFile.txt");
using(StreamWriter sw = new StreamWriter(myTempFile))
{
     sw.WriteLine("Your error message");
}
35
Steve

一時的な場所にハードコードされた文字列値を使用する代わりに、次のように使用する方が動的に一時パスを動的に取得できます。必要に応じて一時フォルダまたは一時ファイルを返します。

string filePath = Path.Combine(Path.GetTempPath(),"SaveFile.txt");

または

Path.GetTempFileName();
6
Thilina H

System.IO.Path.GetTempPath()

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

2
Pacman

%appdata%については、

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
1
user3014562