Feedback

C# - Temporäre Datei mit using einfach nutzen/verwalten

Veröffentlicht von am 22.01.2012
(0 Bewertungen)
Anwendung:

using(var temp = new TemporaryFile()){
// z.B.:
File.WriteAllText(temp.FullPath, "text");
}
// Datei wird automatisch gelöscht.


/// <summary>
  /// Erzeugt eine temporäre Datei
  /// </summary>
  public class TemporaryFile : IDisposable
  {
    /// <summary>
    /// Dateipfad
    /// </summary>
    public string FullPath { get; private set; }

    /// <summary>
    /// Erzeugt eine temporäre Datei
    /// </summary>
    /// <param name="ext">Mögliche Dateierweiterung</param>
    public TemporaryFile(string ext = ".tmp")
    {
      if (ext == null) ext = ".tmp";
      if (!ext.StartsWith(".")) ext = "." + ext;

      string fullPath;

      do
      {
        fullPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N") + ext);
      } while (File.Exists(fullPath));

      FullPath = fullPath;
    }

    /// <summary>
    /// Performs application-defined tasks associated with freeing, releasing, or resetting
    /// unmanaged resources.
    /// </summary>
    public void Dispose()
    {
      try
      {
        File.Delete(FullPath);
      }
      catch { }
    }
  }
Abgelegt unter using, temp, file.

1 Kommentare zum Snippet

keco schrieb am 23.01.2012:
Was spricht gegen Path.GetTempFileName-Methode zum Erstellen eines eindeutigen Namens? Der dabei zurückgegebene Dateipfad ist der vollständige Name zur temporären Datei im Temp-Verzeichnis des jeweiligen Benutzers.
 

Logge dich ein, um hier zu kommentieren!