Créer un fichier temporaire objet de flux de données en c#
Donné un objet de flux de données qui contient un fichier xlsx, je veux l'enregistrer en tant que fichier temporaire et de le supprimer lorsque vous n'utilisez pas le fichier plus.
J'ai pensé à la création d'un class
que la mise en œuvre IDisposable
et de l'utiliser avec le using
bloc de code pour supprimer les fichiers temporaires à la fin.
Aucune idée de comment faire pour enregistrer le flux à une température de fichier et le supprimer à la fin de son utilisation?
Grâce
OriginalL'auteur Yair Nevet | 2011-10-23
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le TempFileCollection classe:
Ce qui est bien c'est que même si une exception est levée le fichier temporaire est garanti d'être supprimés grâce à la
using
bloc. Par défaut, cela permet de générer le fichier dans le dossier temporaire configuré sur le système, mais vous pouvez aussi spécifier un dossier personnalisé lors de l'invocation de laTempFileCollection
constructeur.OriginalL'auteur Darin Dimitrov
Vous pouvez obtenir un nom de fichier temporaire avec
Path.GetTempFileName()
, créer unFileStream
l'écriture et l'utilisationStream.CopyTo
de copier toutes les données de votre flux d'entrée dans le fichier texte:OriginalL'auteur Jon
Une autre approche serait ici:
De cette façon, le fichier sera supprimé après la clôture.
Edit:
Si vous n'avez pas besoin de flux de vivre trop longtemps (par exemple: une seule opération d'écriture ou d'une seule boucle pour écrire...), vous pouvez, comme l'a suggéré, l'envelopper de ce flux en utilisant le bloc. Avec cela, vous n'aurez pas à éliminer manuellement.
Code serait:
using
bloc. Certainement la meilleure réponse à ce jour.J'ai hate que tous les
FileOptions
surcharges besoin de mon propre buffersize ...C'est la façon de le faire quand vous avez besoin d'avoir une durée de vie plus longue que ce qui peut être exprimé avec une aide du bloc.
OriginalL'auteur Anderson Matos
EDIT:
Désolé, c'est peut-être juste moi, mais j'aurais juré que lorsque vous avez initialement posté la question vous n'avez pas tous ces détails, à propos d'une classe de mise en œuvre de IDisposable, etc... de toute façon, je ne suis pas vraiment sûr de ce que vous demandez dans votre (édité?) question. Mais cette question:
Any idea of how to save the stream to temp file and delete it on the end of use?
est assez simple. N'importe quel nombre de résultats de google va revenir ".NET C# Flux de Fichier" ou telle.OriginalL'auteur Steve
Je viens de proposer pour la création d'un fichier utilisation
Path.GetTempFileName()
. mais les autres dépendent de votre utilisation senario, par exemple si vous voulez créer dans votre temp créateur de la classe et de l'utiliser juste là, c'est bien d'utiliserusing
mot-clé.OriginalL'auteur Saeed Amiri