一時ファイルの作成方法
using System.IO;
string 作成された一時ファイル名 = Path.GetTempFileName();
-
一時ファイルはログイン中ユーザーの一時フォルダー内に作成されます。
C:\Users\{ユーザーID}\AppData\Local\Temp\tmp{連番}.tmp
- 一時ファイル名は相対パスではなく、フルパスで返されます。
- このメソッドで作成した一時ファイル数が 65535 を超えると 例外 IOException が発生します。これを防止するため、処理に失敗した場合は一時ファイルを削除するようにします。
サンプルコード1
一時ファイルを作成し、そのファイル名を表示します。using System.IO;
// 一時ファイルを作成し、そのファイル名を返す。
string tempFileName = Path.GetTempFileName();
// ファイル名を表示
System.Console.WriteLine($"一時ファイル名 = {tempFileName}");


サンプルコード2
一時ファイルを作成し、ファイルを書き込んだ後に名前を変更します。 処理に失敗した場合は一時ファイルを削除します。using System;
using System.IO;
// 一時ファイル名
string tempFileName = string.Empty;
try
{
// 一時ファイルを作成し、そのファイル名を返す。
tempFileName = Path.GetTempFileName();
// 一時ファイルに書き込み
using (StreamWriter sw = new StreamWriter(tempFileName))
{
sw.WriteLine("一時ファイルに書き込み");
}
// ファイル名を変更
File.Move(tempFileName, "./test.txt");
System.Console.WriteLine($"{tempFileName} -> ./test.txt");
}
catch (Exception ex)
{
// エラーが発生
System.Console.WriteLine(ex.Message);
}
finally
{
// 一時ファイルが残っていれば削除する
if (File.Exists(tempFileName))
{
File.Delete(tempFileName);
}
}
検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.11.16
- Microsoft Windows 10 Pro Version 21H2 OS Build 19044.1766 Experience: Windows Feature Experience Pack 120.2212.4180.0