2009-08-07 13 views

risposta

33

Se si utilizza .NET, si prega di utilizzare Path.GetTempPath(). Ciò garantirà l'utilizzo della directory temporanea assegnata all'utente che esegue l'applicazione, indipendentemente da dove è memorizzata.

Se si sfoglia il file system, si noterà che ci sono molti "temporanei" directory:

  • ~ \ Temp
  • ~ \ Windows \ Temp
  • ~ \ Utenti \ nomeutente \ AppData \ Local \ Temp

... e molti altri. Alcuni di questi percorsi sono dipendenti dal sistema operativo e non saranno presenti su determinati sapori di Windows. Quindi, risparmiate tempo e problemi, e lasciate che la struttura .NET scopra dove si trova il percorso "temp".

+1

Quello - o utilizzare la memoria isolata, a cui un utente è sempre garantito avere accesso in scrittura! –

+3

Meglio ancora, basta usare Path.GetTempFileName() che genererà anche il nome del file e restituire il percorso completo ad esso (nella cartella temporanea appropriata). –

6

Nella directory temp?

Usa GetTempPath o in un file batch% TEMP%

4

C: \ Temp NON è una buona scelta.

Se si utilizza Net utilizzare il codice in questo modo:

  string baseFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 

     string cfgFolder = Path.Combine(baseFolder, "MyAppName"); 


     try 
     { 
      if (!Directory.Exists(cfgFolder)) 
      { 
       Directory.CreateDirectory(cfgFolder); 
      } 
     } 
     catch { } // If no access, not much we can do. 

per ottenere un posto per la conservazione a medio termine dei dati delle applicazioni, o Path.GetTempPath() per la memorizzazione transitoria dei dati.

+0

Perché non è una buona idea usare 'c: \ Temp'? Non sono in disaccordo con il tuo punto, sono solo curioso sul tuo ragionamento =) –

+2

C: \ potrebbe essere una partizione veramente piccola, e in molti casi, gli utenti normali (non amministratori) non hanno permessi di scrittura su C: \ quindi non possono creare C: \ temp –

+0

Inoltre, chi può dire che C: \ temp esiste anche su Windows non inglese? –

10

Utilizzare GetTempPath e possibilmente GetTempFileName per determinare dove inserire i file temporanei. Questo è il modo più affidabile, amichevole per gli utenti finali e futuro per ottenere una posizione temporanea per i file.

3

Essa dipende dalla lingua che si sta utilizzando:

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

lo restituisca la cartella appropriata in C# per esempio.

oppure, le variabili di ambiente TEMP o TMP se è necessario.

-3

C: \ Documents and Settings \ nome utente \ Dati applicazioni \ IsolatedStorage

+16

Sì, ma si prega di utilizzare l'API di archiviazione isolata documentata e di non eseguire l'hardcoding di questo percorso!Su un sistema con una versione tedesca di Windows, questo sarebbe ad es. "C: \ Dokumente \ ....." e se indichi questo percorso, la tua app si interromperà. FOLLA: SE CI SONO API PER FARE QUALCOSA, ** USARLI ** !! –

Problemi correlati