Ich muss eine eindeutige temporäre Datei mit der Erweiterung .csv generieren.
Was ich gerade mache, ist
string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");
Dies garantiert jedoch nicht, dass meine CSV-Datei eindeutig ist.
Ich weiß, dass die Wahrscheinlichkeit, dass ich jemals eine Kollision habe, sehr gering ist (insbesondere wenn Sie bedenken, dass ich die .tmp-Dateien nicht lösche), aber dieser Code sieht für mich nicht gut aus.
Natürlich könnte ich manuell zufällige Dateinamen generieren, bis ich schließlich einen eindeutigen finde (was kein Problem sein sollte), aber ich bin gespannt, ob andere einen guten Weg gefunden haben, um mit diesem Problem umzugehen.
GetTempFileName()
erstellt wird . - Wenn Sie die Zeichenfolge sofort in eine andere ändern, haben Sie gerade eine neue Null-Byte-Datei in Ihrem temporären Verzeichnis erstellt (und wie andere angemerkt haben, schlägt dies möglicherweise fehl, wenn Sie dort 65535-Dateien aufrufen ...) - - Um dies zu vermeiden, löschen Sie alle Dateien, die Sie in diesem Ordner erstellen (einschließlich der von, die von zurückgegeben werden GetTempFileName()
, idealerweise in einem finally-Block).