2015-03-20 9 views
10

Sto utilizzando il metodo System.IO.Path.GetTempPath() per recuperare la cartella temporanea dalle variabili di ambiente. Tuttavia, sto trovando che questo restituirà sempre la variabile TEMP o TMP per l'utente corrente se esiste altrimenti restituirà la variabile TEMP o TMP di sistema.Specificamente ottenere il percorso TEMP di sistema in C#

C'è un modo per ottenere sempre la variabile System TEMP?

Sono a conoscenza di molte altre domande su SO relative al metodo Path.GetTempPath() in cui le risposte fanno riferimento alla documentazione di MSDN su come questo metodo decide cosa restituire. Sono a conoscenza del comportamento di questo metodo da MSDN e sto chiedendo se c'è un altro modo per assicurarmi di ottenere la cartella temporanea del sistema.

risposta

21

Forse stai cercando il metodo Environment.GetEnvironmentVariable.

Questo utilizzo si dà cartella% TEMP% dell'utente:

Environment.GetEnvironmentVariable("TEMP"); 

quali C: \ Users \ MyUserName \ AppData \ Local \ Temp

E questo ti dà la del sistema% cartella% TEMP:

Environment.GetEnvironmentVariable("TEMP", EnvironmentVariableTarget.Machine); 

ad esempio C: \ WINDOWS \ TEMP

+1

Non sono il downvoter, ma ho il sospetto che tu fossi downvoted perché mentre tentavi di rispondere alla domanda, non hai detto ** come ** usare 'Environment.GetEnvironmentVariable', cioè quali argomenti per passarlo, ecc. In particolare, l'OP voleva sapere come "* ottenere la variabile System TEMP *", e non hai detto * come * per farlo. In altre parole, la tua risposta è la migliore incompleta. –

+1

@WaiHaLee, grazie per i tuoi input. Ho modificato la mia risposta ora per dare i parametri da passare. Spero che questo renda la risposta più completa. – sudheeshix

+0

Mi sono imbattuto in questo nella mia ricerca e deve aver perso il parametro target. Alla fine ho deciso di utilizzare la cartella di dati dell'app comune anziché la temperatura di sistema per evitare potenziali problemi con queste variabili di ambiente. – Brian

Problemi correlati