Erstellen Sie eine temporäre Datei aus dem stream-Objekt in c#
Gegeben, ein stream-Objekt enthält eine xlsx-Datei, die ich speichern möchten, um es in einer temporären Datei und löschen Sie es, wenn Sie nicht mit der Datei nicht mehr.
Ich dachte an die Schaffung einer class
dass die Umsetzung IDisposable
und mit der using
code-block, um zu löschen der temp-Datei am Ende.
Jede Ahnung, wie man das speichern des Streams in eine temp-Datei, und löschen Sie es auf das Ende zu verwenden?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie die TempFileCollection Klasse:
Was ist schön daran ist, dass selbst wenn eine Ausnahme ausgelöst wird die temporäre Datei wird garantiert entfernt werden, Dank der
using
block. Standardmäßig generiert die Datei in den temporären Ordner auf dem system konfiguriert, sondern Sie könnten auch geben Sie einen benutzerdefinierten Ordner beim aufrufen derTempFileCollection
Konstruktor.Ein weiterer Ansatz wäre hier:
Diese Weise wird die Datei werden entfernt nach dem schließen.
Edit:
Wenn Sie nicht brauchen, den stream live zu lange (z.B.: nur einen single-write-operation oder eine einzelne Schleife zu schreiben...), kann man, wie vorgeschlagen, wickeln Sie diesen stream in einen using-block verwenden. Mit dass Sie nicht haben, entsorgen Sie es manuell.
Code wäre wie:
using
block. Sicherlich die beste Antwort bisher.FileOptions
überlastungen erfordern meine eigenen buffersize ...Können Sie eine temporäre Datei mit Namen
Path.GetTempFileName()
erstellen Sie eineFileStream
zu schreiben, und verwenden SieStream.CopyTo
zum kopieren aller Daten von Ihrer Eingabe-stream in der text-Datei:EDIT:
Sorry, vielleicht ist es nur mich, aber ich hätte geschworen, dass, wenn Sie zunächst die Frage gepostet, die Sie nicht alle haben, dass Informationen über eine Klasse die IDisposable, etc... anyways, ich bin mir nicht wirklich sicher, was Sie Fragen in Ihrem (bearbeitet?) Frage. Aber diese Frage:
Any idea of how to save the stream to temp file and delete it on the end of use?
ist ziemlich straight-forward. Eine beliebige Anzahl von google-Ergebnissen wieder kommen werden ".NET C# - Stream, in Datei" oder so.Ich nur empfehlen, für die Erstellung von Datei -
Path.GetTempFileName()
. aber andere hängt von Ihrer Nutzung senario, zum Beispiel, wenn Sie erstellen möchten es sich in Ihrem temp-creator-Klasse und verwenden Sie es nur dort, es ist gutusing
Stichwort.