Aracılığıyla paylaş


Unix'te GetFolderPath davranışı

.NET 8'den başlayarak Unix işletim sistemlerinin Environment.GetFolderPath davranışı değişti.

Açıklamayı değiştir

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 işletim sistemi

SpecialFolder değeri Yol (.NET 7 ve öncesi) Yol (.NET 8 ve üzeri versiyon)
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 versiyon)
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 versiyon)
MyDocuments $HOME $HOME/Documents
Personal $HOME $HOME/Documents

Sürüm kullanıma sunulmuştur

.NET 8 Preview 1

Kesinti yaratan değişiklik 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ı.

En yaygın kesinti, System.Environment.SpecialFolder.Personal dizinini (Environment.GetFolderPath(Environment+SpecialFolder)) almak için $HOME'i Unix'te Environment.GetFolderPath(Environment.SpecialFolder.Personal)'e geçirirken oluşur. Environment.SpecialFolder.Personal ve Environment.SpecialFolder.MyDocuments aynı temel numaralandırma değerinin diğer adlarıdır. Eğer Environment.SpecialFolder.Personal'yi bu şekilde kullanıyorsanız, Environment.SpecialFolder.UserProfile'yi iletmek için kodunuzu değiştirin Environment.GetFolderPath(Environment.SpecialFolder.UserProfile).

Diğer kesintiler için önerilen eylem şunlardan birini yapmaktır:

  • Uygulamanızın dosyalarını uygun dizine geçirin.
  • Kodunuza önceki konum için geri dönüş denetimi ekleyin.

Etkilenen API'ler