2012-03-25 7 views

Répondre

9

Si les fichiers ne sont que des fichiers temporaires, vous devriez probablement utiliser les éléments suivants:

string tempPath = System.IO.Path.GetTempPath(); 

Cela vous donnera le dossier temp de l'utilisateur actuel. C'est probablement un pari plus sûr que d'essayer de les écrire dans le dossier actuel de l'exe.

Plus d'info: http://msdn.microsoft.com/en-us/library/system.io.path.gettemppath.aspx

+3

Le dossier Program Files n'est pas accessible en écriture pour les utilisateurs standard - il n'est jamais prudent de supposer que le dossier de l'exe est accessible en écriture. – shf301

8

Vous pouvez utiliser le répertoire dérivé de Assembly.GetExecutingAssembly().Location:

string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

Si vous voulez juste pour générer des fichiers temporaires, vous pouvez également utiliser Path.GetTempFileName() pour obtenir les noms de fichiers.

1

Il est préférable aux fichiers temporaires de stocker dans des répertoires temporaires, (comme Dan Rigby dit)

string directory = System.IO.Path.GetTempPath(); 

Mais si vous voulez toujours enregistrer des fichiers temporaires dans le répertoire où l'application est en cours d'exécution, vous pouvez alors simplement utiliser Application.StartupPath pour WinForms applications,

string directory = System.Windows.Forms.Application.StartupPath; 
Questions connexes