J'ai un fichier que j'ai besoin d'écrire à un emplacement temporaire, quel est le meilleur endroit dans Windows? Ce fichier ne doit pas bouger car j'ai besoin de le lire plusieurs fois et de le jeter quand je ferme le programme.Emplacement correct pour enregistrer un fichier temporaire dans Windows?
Répondre
utilisation
Path.GetTempPath();
ou
Path.GetTempFileName();
Comme commentateur a souligné, GetTempFileName() n'est pas threadsafe - mais vous pouvez construire des noms de fichiers uniques basés sur GUIDs.
Utilisez la fonction API Windows GetTempPath()
de System.IO.Path
(voir MSDN)
using System.IO
...
myTempPath = Path.GetTempPath();
Vous devez savoir que le système de fichiers pourrait bien changer au cours de l'exécution de votre programme. Soit le chemin Temp peut changer (improbable, accordé), ou votre fichier temporaire peut avoir été déplacé ou supprimé par l'utilisateur. Soyez prêt à vérifier son existence à chaque fois que vous y accédez et gérez le boîtier lorsqu'il n'est pas trouvé avec élégance.
Les autres me devança au sujet
System.IO.Path.GetTempPath()
Mais vous pouvez aussi regarder dans le dossier de données d'application. Cela vous permettra de mieux contrôler votre fichier, comme la capacité a partagé 1 pour tous les utilisateurs ou 1 par utilisateur.
Application.CommonAppDataPath
Application.UserAppDataPath
Si vous avez besoin de votre application à écrire dans un emplacement temporaire et le travail en fiducie partielle, vous aurez besoin de se pencher sur IsolatedStorage.
Si vous voulez construire votre propre nom de fichier temporaire en référence à un emplacement temporaire, j'utilise quelque chose comme ça, pour dépouiller le PATH et hors appliquer mon propre nom ...
string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf";
- 1. Dossier temporaire/Emplacement pour SharePoint
- 2. Comment créer un fichier std :: ofstream dans un fichier temporaire?
- 3. Impossible d'obtenir php pour enregistrer le nom de fichier avec le nom correct
- 4. considérations pour enregistrer des données dans un fichier ou MULTIPLE?
- 5. Comment utiliser ImageIO pour enregistrer plusieurs BufferedImages dans un fichier
- 6. Enregistrer un fichier avec l'extension .f90
- 7. Syntaxe d'initialisation d'objet pour produire un fichier JSON correct
- 8. comment télécharger le fichier vers un emplacement dans CakePHP
- 9. et fichier temporaire Garbage Collection
- 10. Comment créer un nom de fichier temporaire dans Erlang?
- 11. Comment enregistrer un raccourci clavier personnalisé pour une application Windows
- 12. Comment enregistrer un service Windows pendant l'installation?
- 13. Quel est le meilleur emplacement pour conserver le fichier de configuration du programme sous WINDOWS?
- 14. Comment enregistrer le formulaire pour WM_DEVICECHANGE message dans Windows Mobile
- 15. Dupliquer un emplacement de réception dans Biztalk
- 16. SQL enregistrer les données pour fichier
- 17. Comment spécifier un emplacement personnalisé pour crossdomain.xml dans actionscript?
- 18. Comment enregistrer le tas (vidage vers un fichier) dans Eclipse?
- 19. Comment enregistrer un contenu TextField à un fichier dans VB
- 20. Windows Mobile et emplacement de stockage
- 21. l'authentification Windows pour un seul fichier
- 22. Emplacement du widget Qt4 sur Windows
- 23. Enregistrer un nouveau type mime dans ColdFusion (Java)
- 24. exporter gridview pour exceller avec le nom de fichier correct
- 25. ouvrir le fichier temporaire en Java
- 26. Comment créer un fichier texte temporaire en C++?
- 27. Comment enregistrer le fichier dans un répertoire local
- 28. Enregistrer des Btrees dans un fichier disque et le lire
- 29. Comment enregistrer la sortie du journal NAnt dans un fichier?
- 30. Comment enregistrer les caractères chinois dans un fichier avec Java?
Notez que GetTenpFileName pourrait besoin d'être appelé plusieurs fois en raison de la condition de concurrence inhérente (quelque chose d'autre pourrait créer le même fichier entre le retour de GetTempFileName et l'ouverture du fichier). – Richard
vous avez raison, merci pour l'information – tanascius
@Richard Voulez-vous dire une autre application/processus ou un autre thread dans le contexte ** votre ** application? –