Menentukan Folder Sementara Pengguna Semasa
Soalan:
Apabila menggunakan System.IO. Path.GetTempPath() untuk mendapatkan semula laluan folder sementara, ketidakkonsistenan diperhatikan antara menerima folder sementara pengguna semasa dan folder sementara sistem. Adakah terdapat kaedah alternatif yang secara khusus menyediakan laluan folder sementara pengguna semasa?
Jawapan:
Memahami Fungsi GetTempPath():
System.IO.Path.GetTempPath() ialah pembungkus untuk orang asli Fungsi GetTempPath() dalam Kernel32. Menurut MSDN, fungsi ini mengutamakan pembolehubah persekitaran dalam susunan berikut:
Mengatasi Ketidakkonsistenan:
Ketidakkonsistenan dalam laluan folder sementara mungkin timbul jika salah satu pembolehubah TMP, TEMP atau USERPROFILE menghala ke laluan Windows, terutamanya direktori sementaranya.
Pendekatan Alternatif:
Walaupun tiada API khusus yang semata-mata menyediakan laluan folder sementara pengguna semasa, adalah mungkin untuk memanfaatkan pembolehubah persekitaran yang dibincangkan sebelum ini untuk membinanya:
Contoh Kod:
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 }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Laluan Folder Sementara Pengguna Semasa dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!