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]

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

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