Menggunakan ini:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Saya mendapatkan keluaran ini:
"C:\\Documents and Settings\\[USER]\\Application Data"
Bagaimana saya bisa mendapatkan direktori root dari semua pengguna? yaitu:
"C:\\Documents and Settings\\[USER]\\"
Jawaban:
Mungkin ini akan menjadi solusi yang baik: dengan mempertimbangkan apakah ini Vista / Win7 atau XP dan tanpa menggunakan variabel lingkungan:
Padahal menggunakan variabel lingkungan jauh lebih jelas.
sumber
Mencoba:
Edit:
Jika versi .NET yang Anda gunakan adalah 4 atau lebih tinggi, Anda dapat menggunakan
Environment.SpecialFolder
pencacahan:sumber
Anda bisa mendapatkan jalur UserProfile hanya dengan ini:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
sumber
Juga sangat membantu, saat menyelidiki
Environment.SpecialFolder
enum. Gunakan LINQPad atau buat solusi dan jalankan kode ini:Ini adalah hasil di mesin saya:
("fisch" adalah 5 huruf pertama dari nama belakang saya. Ini adalah nama pengguna yang diberikan saat masuk dengan Akun Microsoft.)
sumber
Mencoba menavigasi ke atas dari SpecialFolder yang bernama rentan terhadap masalah. Ada banyak alasan mengapa folder tidak berada di tempat yang Anda harapkan - pengguna dapat memindahkannya sendiri, GPO dapat memindahkannya, pengalihan folder ke jalur UNC, dll.
Menggunakan variabel lingkungan untuk profil pengguna harus mencerminkan salah satu dari kemungkinan masalah tersebut.
sumber
Mencoba:
sumber
Mengotak-atik variabel lingkungan atau offset folder induk yang dikodekan dengan keras bukanlah ide yang baik ketika ada API untuk mendapatkan info yang Anda inginkan, panggil
SHGetSpecialFolderPath(...,CSIDL_PROFILE,...)
sumber
sumber
Anda dapat menggunakan kode berikut:
informasi lebih lanjut lihat: Dapatkan Jalur Direktori Saat Ini di WinXP dan WinCE dengan C #
sumber