Bestimmen des temporären Ordners des aktuellen Benutzers
Frage:
Bei Verwendung von System.IO. Path.GetTempPath() zum Abrufen des temporären Ordnerpfads verwendet, werden Inkonsistenzen zwischen dem Empfang des temporären Ordners des aktuellen Benutzers und beobachtet Der temporäre Ordner des Systems. Gibt es eine alternative Methode, die speziell den temporären Ordnerpfad des aktuellen Benutzers bereitstellt?
Antwort:
Verstehen der GetTempPath()-Funktion:
System.IO.Path.GetTempPath() ist ein Wrapper für die native GetTempPath()-Funktion in Kernel32. Laut MSDN priorisiert diese Funktion Umgebungsvariablen in der folgenden Reihenfolge:
Adressierung der Inkonsistenz:
Die Inkonsistenz in temporären Ordnerpfaden kann auftreten, wenn eine der Variablen TMP, TEMP oder USERPROFILE auf den Windows-Pfad verweist, insbesondere auf das temporäre Verzeichnis.
Alternativer Ansatz:
Es gibt zwar keine spezifische API, die ausschließlich den temporären Ordner des aktuellen Benutzers bereitstellt Pfad ist es möglich, die zuvor besprochenen Umgebungsvariablen zu nutzen, um ihn zu erstellen:
Codebeispiel:
string userTempPath; // Check the USERPROFILE variable first if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("USERPROFILE"))) { userTempPath = Path.Combine(Environment.GetEnvironmentVariable("USERPROFILE"), "Local Settings", "Temp"); } // Check the TMP/TEMP variables if USERPROFILE is not defined or valid else { string tempVar = Environment.GetEnvironmentVariable("TMP"); if (string.IsNullOrEmpty(tempVar)) { tempVar = Environment.GetEnvironmentVariable("TEMP"); } if (!string.IsNullOrEmpty(tempVar) && Directory.Exists(tempVar)) { userTempPath = tempVar; } } if (!string.IsNullOrEmpty(userTempPath)) { // At this point, userTempPath should contain the current user's temporary folder path }
Das obige ist der detaillierte Inhalt vonWie kann ich den temporären Ordnerpfad des aktuellen Benutzers in C# zuverlässig abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!