2009-08-07 4 views

Antwort

33

Wenn Sie .NET verwenden, bitte Path.GetTempPath() verwenden. Dies garantiert, dass Sie das temporäre Verzeichnis verwenden, das dem Benutzer zugewiesen ist, der Ihre Anwendung ausführt, unabhängig davon, wo sie gespeichert ist.

Wenn Sie das Dateisystem durchsuchen, werden Sie, dass es bemerken viele "temp" Verzeichnisse sind:

  • ~ \ Temp
  • ~ \ Windows \ Temp
  • ~ \ Users \ Benutzername \ AppData \ Local \ Temp

... und viele mehr. Einige dieser Pfade sind vom Betriebssystem abhängig und in bestimmten Windows-Varianten nicht enthalten. Also, sparen Sie sich Zeit und Mühe, und lassen Sie das .NET-Framework herausfinden, wo sich der "Temp" -Pfad befindet.

+1

Das - oder isolierten Speicher verwenden, auf den ein Benutzer immer Schreibzugriff hat! –

+3

Besser noch, verwenden Sie einfach Path.GetTempFileName(), der auch den Dateinamen generiert und den vollständigen Pfad (im entsprechenden temporären Ordner) zurückgibt. –

6

Im Temp-Verzeichnis?

Verwenden GetTempPath oder in einer Batch-Datei% TEMP%

4

C: \ Temp ist nicht eine gute Wahl.

Wenn Sie .Net Verwendung Code wie folgt verwenden:

  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. 

einen Platz für die mittelfristige Lagerung von App-Daten, oder Path.GetTempPath() zur vorübergehenden Speicherung von Daten zu erhalten.

+0

Warum ist es keine gute Idee, 'c: \ Temp' zu verwenden? Ich bin nicht mit Ihrem Punkt nicht einverstanden, ich bin nur neugierig auf Ihre Argumentation =) –

+2

C: \ könnte eine sehr kleine Partition sein, und in vielen Fällen haben normale (nicht-Admin) Benutzer keine Schreibrechte auf C: \ so können sie nicht erstellen C: \ temp –

+0

Darüber hinaus wer ist zu sagen, dass C: \ temp sogar auf nicht-Englisch Windows existiert? –

10

Verwenden GetTempPath und möglicherweise GetTempFileName, um zu bestimmen, wo Ihre temporären Dateien zu setzen. Dies ist der zuverlässigste, benutzerfreundlichste und zukunftssicherste Weg, um einen temporären Speicherort für Dateien zu erhalten.

3

Es hängt von der Sprache, die Sie verwenden:

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

kehren Sie den entsprechenden Ordner in C# zum Beispiel.

oder die Umgebungsvariablen TEMP oder TMP, wenn Sie müssen.

-3

C: \ Dokumente und Einstellungen \ Benutzername \ Anwendungsdaten \ IsolatedStorage

+16

Ja - aber bitte verwenden Sie die dokumentierte Isolated Storage API und kodieren Sie diesen Pfad nicht!Auf einem System mit einer deutschen Windows-Version wäre dies z.B. "C: \ Dokumente \ ....." und wenn Sie diesen Pfad fest codieren, wird Ihre App unterbrochen. FOLKEN: WENN ES APIs SIND, ETWAS ZU TUN, ** BENUTZT SIE **! –