2009-08-28 6 views
1

Ma question concerne la gestion des fichiers temporaires dans un petit programme .NET. Ce programme/utilitaire ne vient de ce qui suit avec deux URL:Gestion des fichiers temporaires dans un petit programme .NET

Download each URL to a string (WebClient.DownloadString). 
Save each string to a temporary file. 
Call WinMerge (Process.Start) to diff the two files (in read-only mode for both files). 

J'ai actuellement la chose la plus simple qui pourrait travail:

save URL1 to windows/temp/leftFileToDiff.txt 
save URL2 to windows/temp/rightFileToDiff.txt. 

Cela fonctionne très bien - comme Winmerge n'a besoin que de fonctionner en lecture seule mode les fichiers peuvent être écrasés en exécutant mon programme plusieurs fois et rien de mal n'arrive.

Cependant, je voudrais maintenant changer les noms de fichiers temporaires à quelque chose de significatif (lié à l'URL) afin que je puisse voir ce qui est dans la vue WinMerge. Je veux aussi nettoyer ces fichiers quand ils ne sont plus nécessaires. Quelles sont mes options pour cela?

Ma prochaine idée la plus simple est d'avoir un dossier spécifié où ils sont stockés et juste pour zapper cela chaque fois que mon programme se termine. Y a-t-il un moyen meilleur/plus élégant/standard?

Merci.

+0

Voir aussi http://stackoverflow.com/questions/659351/deleting-temporary-files-after-usage –

Répondre

5

Créez un dossier basé sur Guid sous la zone de température de l'utilisateur et utilisez-le?

 string path = Path.Combine(Path.GetTempPath(), 
       Guid.NewGuid().ToString("n")); 
     Directory.CreateDirectory(path); 
     try 
     { 
      // work inside path 
     } 
     finally 
     { 
      try { Directory.Delete(path, true); } 
      catch (Exception ex) {Trace.WriteLine(ex);} 
     } 
+3

au lieu du GUID je voudrais créer le chemin avec le chemin chaîne = Path.Combine (Path.GetTempPath(), System.IO.Path.GetRandomFileName()); – Oliver

+0

Cela fonctionne aussi ;-p –

+0

Merci - Je vais essayer ça –

Questions connexes