Perilaku GetFolderPath di Unix
Mulai dari .NET 8, perilaku Environment.GetFolderPath pada sistem operasi Unix telah berubah.
Deskripsi perubahan
Tabel berikut menunjukkan bagaimana nilai jalur yang dikembalikan berubah untuk setiap sistem operasi Unix untuk berbagai folder khusus.
Linux
Nilai SpecialFolder | Jalur (.NET 7 dan yang lebih lama) | Jalur (.NET 8 dan yang lebih baru) |
---|---|---|
MyDocuments |
$HOME |
XDG_DOCUMENTS_DIR Menggunakan jika tersedia; jika tidak$HOME/Documents |
Personal |
$HOME |
XDG_DOCUMENTS_DIR Menggunakan jika tersedia; jika tidak$HOME/Documents |
macOS
Nilai SpecialFolder | Jalur (.NET 7 dan yang lebih lama) | Jalur (.NET 8 dan yang lebih baru) |
---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (Dukungan Pustaka/Aplikasi) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (Dukungan Pustaka/Aplikasi) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies ) |
Android
Nilai SpecialFolder | Jalur (.NET 7 dan yang lebih lama) | Jalur (.NET 8 dan yang lebih baru) |
---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Versi yang diperkenalkan
Pratinjau .NET 8 1
Jenis perubahan yang melanggar
Perubahan ini adalah perubahan perilaku.
Alasan untuk berubah
Perilaku sebelumnya salah dan tidak memenuhi harapan pengguna untuk Linux, macOS, dan Android.
Tindakan yang direkomendasikan
Jeda yang paling umum adalah jika Anda meneruskan System.Environment.SpecialFolder.Personal ke Environment.GetFolderPath(Environment+SpecialFolder) Unix untuk mendapatkan $HOME
direktori (Environment.GetFolderPath(Environment.SpecialFolder.Personal)
). Environment.SpecialFolder.Personal dan Environment.SpecialFolder.MyDocuments merupakan alias untuk nilai enumerasi yang mendasar yang sama. Jika Anda menggunakan Environment.SpecialFolder.Personal dengan cara ini, ubah kode Anda untuk meneruskan Environment.SpecialFolder.UserProfile sebagai gantinya (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
).
Untuk jeda lainnya, tindakan yang direkomendasikan adalah melakukan salah satu hal berikut:
- Migrasikan file aplikasi Anda ke direktori yang sesuai.
- Tambahkan pemeriksaan fallback untuk lokasi sebelumnya ke kode Anda.
API yang Terpengaruh
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk