Temporäre Datei mit C# erstellen und implizit löschen 👍 👎

Hin und wieder kann es – beispielsweise bei der Arbeit mit Datenströmen – sinnvoll bzw. notwendig sein, mit Dateien zu arbeiten, die nur vorübergehend benötigt werden. Das .NET-Framework unterstützt dies mit der Methode Path.GetTempFileName(), ohne jedoch die Datei implizit wieder zu entfernen. Um diesen kleinen Makel zu beheben, bietet sich eine kompakte Implementierung wie die folgende Lösung an, welche auf using basiert:
Klasse implementieren
010203040506070809101112
public class TemporaryFile : IDisposable {    public string Name {        get;        private set;    }
public TemporaryFile() { this.Name = Path.GetTempFileName(); }
public void Dispose() => File.Delete(this.Name);}
Die Verwendung gestaltet sich nun sehr komfortabel, wobei die Datei innerhalb der entsprechenden Anweisung existiert und wie üblich verwendet werden kann; anschließend wird diese automatisch wieder gelöscht:
Klasse verwenden
01020304050607080910111213
/* Datei existiert noch nicht */
using(TemporaryFile temporaryFile = new TemporaryFile()) { /* Datei existiert ab sofort */
File.WriteAllBytes(temporaryFile.Name, new byte[] { 0x01, 0x03, 0x03, 0x07 });
/* Datei existiert weiterhin */}
/* Datei existiert nicht mehr */


Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche