Laden...

Disposable TemporaryFile

Erstellt von userid12529 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.997 Views
U
userid12529 Themenstarter:in
208 Beiträge seit 2008
vor 14 Jahren
Disposable TemporaryFile

Hallo! 😃

Ich habe vor kurzem einen Anwendungsfall gehabt, bei dem ich desöfteren temporäre Dateien im Temp-Ordner angelegt, mit diesen gearbeitet und die Dateien anschließend nicht mehr brauchte und daher gelöscht habe. Mich hat dabei gestört, dass ich den Dateipfad immer in einer Variablen halten musste um so am Ende aller Arbeit die Datei wieder löschen zu können (will ja keinen Datenmüll im Temp-Ordner hinterlassen). Da kam ich dann auf die Idee, mir eine kleine Klasse zu schreiben, die ich innerhalb eines using-Blocks verwenden kann, welche mir Zugriff auf den Dateipfad gewährt aber ansonsten sich um das Erstellen und Löschen der Datei selbst kümmert. Vielleicht ist das auch für jemand anderen ganz nützlich, deshalb stell ich's hier mal rein. 😃

using System;
using System.IO;

public sealed class TemporaryFile : IDisposable
{
    private bool disposed;

    public string FilePath { get; private set; }

    public TemporaryFile()
    {
        FilePath = Path.GetTempFileName();
    }

    ~TemporaryFile()
    {
        Dispose(false);
    }

    #region IDisposable Pattern

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    private void Dispose(bool disposing)
    {
        if (disposed)
            return;

        if (File.Exists(FilePath))
            File.Delete(FilePath);
            
        disposed = true;
    }

    #endregion
}

Verwendung:

using (var file1 = new TemporaryFile()) // neue eindeutige Datei wird im Temp-Verzeichnis angelegt
{
    Console.WriteLine(file1.FilePath);
    // Sonstige Arbeiten an der temporären Datei
} // temporäre Datei wird wieder gelöscht

Liebe Grüße,

Isaac

Schlagwörter: Temporary File, temporäre Datei, Disposable