2009-07-14 8 views
7

Possible en double:
How can I create a temp file with a specific extension with .net ?Générer un nom de fichier temporaire unique avec une extension donnée en utilisant .NET

Il est possible de créer un fichier temporaire dans .NET en appelant

string fileName = System.IO.Path.GetTempFileName(); 

Cela créera un fichier avec une extension .TMP dans le répertoire temporaire.

Et si vous voulez spécifiquement qu'il ait une extension différente? Par souci de cet exemple, disons que j'avais besoin d'un fichier se terminant par .TR5.

La solution évidente (et le buggy) est d'appeler

string fileName = Path.ChangeExtension(Path.GetTempFileName(), "tr5")) 

Les problèmes ici sont:

  • Il a encore généré un fichier vide (par exemple tmp93.tmp) dans le répertoire temporaire, qui va maintenant traîner indéfiniment
  • Il n'y a pas gurantee que le nom de fichier résultant (tmp93.tr5) n'est pas déjà existant

Existe-t-il un moyen simple et sûr de générer un fichier temporaire avec une extension de fichier spécifique?

Répondre

1

Je ne sais pas s'il y a une méthode prise en charge pour générer une extension autre que .tmp, mais cela vous donnera un fichier unique:

string fileName = Path.ChangeExtension(Path.GetTempFileName(), Guid.NewGuid().ToString() + "tr5")) 

Pas un élégant solution et je ne suis pas sûr si vous avez besoin de récupérer ensuite en fonction de l'extension spécifique, mais vous pouvez toujours écrire un modèle, même pour cela.

+0

J'ai remarqué cela après l'avoir posté. –

Questions connexes