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.


GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

/// <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!