Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Laluan Folder Sementara Pengguna Semasa dalam C#?

Bagaimanakah Saya Boleh Mendapatkan Laluan Folder Sementara Pengguna Semasa dalam C#?

Linda Hamilton
Lepaskan: 2025-01-05 09:17:40
asal
128 orang telah melayarinya

How Can I Reliably Get the Current User's Temporary Folder Path in C#?

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:

  • TMP
  • TEMP
  • PROFIL PENGGUNA
  • Direktori Windows

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:

  • Jika pembolehubah USERPROFILE ditakrifkan dan menunjuk ke direktori profil pengguna yang sah, maka laluan folder sementara boleh diperoleh daripadanya, biasanya terletak di {user profile path}Local SettingsTemp.
  • Jika pembolehubah TMP atau TEMP ditakrifkan dan menunjuk kepada sementara yang sah folder, maka ia boleh digunakan terus.

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan