C#最佳实践:编写"临时"文件以供下载:放在应用程序的环境文件夹或临时文件夹中

mic*_*ael 4 c# temporary-files temporary-directory

基本上,我想知道下面的文件下载问题是否有最好的做法,不仅仅是临时使用,而是最终将它们移动到应用程序文件夹.我面临一些选择:

//Option 1 - Random file
String tempfile = Path.GetTempFileName();
WriteData(tempfile);
File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename);

//Option 2 - Temp Path + Random file name
String tempfile = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
WriteData(tempfile);
File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename);

//Option 3 - Temp Path + real file name
String tempfile = Path.Combine(Path.GetTempPath(), filename);
WriteData(tempfile);
File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename);

//Option 4 - Temp Application Path + Random file name
String tempfile = Path.Combine(Environment.CurrentDirectory, Settings.Default.DownloadFolder, Path.GetRandomFileName());
WriteData(tempfile);
File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename);

//Optioin 5 - Temp Application Path + file name
String tempfile = Path.Combine(Environment.CurrentDirectory, Settings.Default.DownloadFolder, filename);
WriteData(tempfile);
File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename);
Run Code Online (Sandbox Code Playgroud)

因为当时正在使用某些文件,所以我无法直接将文件写入最终的位置.它必须去临时区域......

Con*_*rix 8

你的第一个选择非常好.它非常清晰,有据可查,记录在案.

//Option 1 - Random file
String tempfile = Path.GetTempFileName();
WriteData(tempfile);
File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename);
Run Code Online (Sandbox Code Playgroud)

除了Environment.CurrentDirectory位.正如Astander在这个答案中指出的那样你可能想要使用AppDomain.BaseDirectory,因为对话框可以改变 Environment.CurrentDirectory