2009-04-15 10 views

Répondre

43

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.

+4

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

+0

vous avez raison, merci pour l'information – tanascius

+0

@Richard Voulez-vous dire une autre application/processus ou un autre thread dans le contexte ** votre ** application? –

7

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.

11

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 
0

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.

0

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"; 
Questions connexes