Unix'te GetFolderPath davranışı
.NET 8'den başlayarak Unix işletim sistemlerinin Environment.GetFolderPath davranışı değişti.
Açıklama değiştirildi
Aşağıdaki tablolarda, çeşitli özel klasörler için her Unix işletim sistemi için döndürülen yol değerinin nasıl değiştiği gösterilmektedir.
Linux
SpecialFolder değeri | Yol (.NET 7 ve öncesi) | Yol (.NET 8 ve üzeri) |
---|---|---|
MyDocuments |
$HOME |
Varsa kullanır XDG_DOCUMENTS_DIR ; aksi takdirde $HOME/Documents |
Personal |
$HOME |
Varsa kullanır XDG_DOCUMENTS_DIR ; aksi takdirde $HOME/Documents |
macOS
SpecialFolder değeri | Yol (.NET 7 ve öncesi) | Yol (.NET 8 ve üzeri) |
---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (Kitaplık/Uygulama Desteği) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (Kitaplık/Uygulama Desteği) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies ) |
Android
SpecialFolder değeri | Yol (.NET 7 ve öncesi) | Yol (.NET 8 ve üzeri) |
---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Sürüm kullanıma sunulmuştur
.NET 8 Preview 1
Hataya neden olan değişikliğin türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Önceki davranış yanlıştı ve Linux, macOS ve Android için kullanıcı beklentilerini karşılamadı.
Önerilen eylem
En yaygın kesme, dizinini (Environment.GetFolderPath(Environment.SpecialFolder.Personal)
) almak $HOME
için Unix'e Environment.GetFolderPath(Environment+SpecialFolder) geçiş System.Environment.SpecialFolder.Personal yapmaktır. Environment.SpecialFolder.Personal ve Environment.SpecialFolder.MyDocuments aynı temel numaralandırma değerinin diğer adlarıdır. Bu şekilde kullanıyorsanızEnvironment.SpecialFolder.Personal, bunun yerine (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
) geçirmek Environment.SpecialFolder.UserProfile için kodunuzu değiştirin.
Diğer kesmeler için önerilen eylem aşağıdakilerden birini yapmaktır:
- Uygulamanızın dosyalarını uygun dizine geçirin.
- Kodunuza önceki konum için geri dönüş denetimi ekleyin.