2009-04-15 13 views

risposta

43

uso

Path.GetTempPath(); 

o

Path.GetTempFileName(); 

Come commentatore ha sottolineato, GetTempFileName() non è threadsafe - ma si può costruire nomi di file univoci basati su GUID.

+4

noti che potrebbero GetTenpFileName deve essere chiamato più volte a causa della condizione di razza intrinseca (qualcos'altro potrebbe creare lo stesso file tra il ritorno da GetTempFileName e l'apertura del file). – Richard

+0

hai ragione, grazie per le informazioni – tanascius

+0

@Richard Vuoi dire un'altra app/processo o un'altra discussione nel contesto ** la tua ** app? –

7

utilizzare la funzione API di Windows GetTempPath() da System.IO.Path (vedi MSDN)

using System.IO 

... 

myTempPath = Path.GetTempPath(); 

si deve essere consapevoli che il file system potrebbe anche cambiare durante l'esecuzione del programma. O il percorso Temp potrebbe cambiare (improbabile, concesso), o il tuo file temporaneo potrebbe essere stato spostato o cancellato dall'utente.

Preparatevi a verificarne l'esistenza ogni volta che vi accedete e gestite il caso quando non viene trovato con garbo.

11

Gli altri mi picchiavano ad esso per quanto riguarda

System.IO.Path.GetTempPath() 

ma si può anche guardare in cartella dei dati dell'applicazione. Ciò ti consentirà un maggiore controllo sul tuo file, come l'abilità che 1 ha condiviso per tutti gli utenti o 1 per utente.

Application.CommonAppDataPath 
Application.UserAppDataPath 
0

Se è necessario l'applicazione per scrivere in una posizione temporanea e lavorare in attendibilità parziale, avresti bisogno di guardare in IsolatedStorage.

0

Se si vuole costruire il proprio nome del file temporaneo personalizzato in riferimento ad una posizione temporanea, io uso qualcosa di simile, per mettere a nudo fuori dal percorso e applicare il mio nome ...

string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf"; 
Problemi correlati