title: C# Best Practices: Writing "temporary" files for download: Place in applicaion's environment folder or temp folder
body: <p>Basically, I'm wondering if there is a best practice when it comes to the following issue of downloading files, not just for temporary use, but eventually to move them to the application folder. I'm faced with some options:</p>
  
  <pre><code>//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);
  </code></pre>
  
  <p>Because some files are in use at the time I don't have the option of writing the file directly to where it ends up going. It has to go to a temporary area...</p>