Dela via


GetFolderPath-beteende i Unix

Från och med .NET 8 har beteendet Environment.GetFolderPath för unix-operativsystem ändrats.

Ändra beskrivning

Följande tabeller visar hur det returnerade sökvägsvärdet ändras för varje Unix-operativsystem för olika särskilda mappar.

Linux

SpecialFolder-värde Sökväg (.NET 7 och tidigare) Sökväg (.NET 8 och senare)
MyDocuments $HOME Använder XDG_DOCUMENTS_DIR om tillgängligt; annars $HOME/Documents
Personal $HOME Använder XDG_DOCUMENTS_DIR om tillgängligt; annars $HOME/Documents

macOS

SpecialFolder-värde Sökväg (.NET 7 och tidigare) Sökväg (.NET 8 och senare)
MyDocuments $HOME NSDocumentDirectory ($HOME/Documents)
Personal $HOME NSDocumentDirectory ($HOME/Documents)
ApplicationData $HOME/.config NSApplicationSupportDirectory (bibliotek/programsupport)
LocalApplicationData $HOME/.local/share NSApplicationSupportDirectory (bibliotek/programsupport)
MyVideos $HOME/Videos NSMoviesDirectory ($HOME/Movies)

Android

SpecialFolder-värde Sökväg (.NET 7 och tidigare) Sökväg (.NET 8 och senare)
MyDocuments $HOME $HOME/Documents
Personal $HOME $HOME/Documents

Version lanserad

Förhandsversion 1 av .NET 8

Typ av brytande ändring

Den här ändringen är en beteendeförändring.

Orsak till ändring

Det tidigare beteendet var felaktigt och uppfyllde inte användarnas förväntningar på Linux, macOS och Android.

Det vanligaste avbrottet är om du skickar System.Environment.SpecialFolder.Personal till Environment.GetFolderPath(Environment+SpecialFolder) på Unix för att få $HOME katalogen (Environment.GetFolderPath(Environment.SpecialFolder.Personal)). Environment.SpecialFolder.Personal och Environment.SpecialFolder.MyDocuments är alias för samma underliggande uppräkningsvärde. Om du använder Environment.SpecialFolder.Personal på det här sättet ändrar du koden så att den skickas Environment.SpecialFolder.UserProfile i stället (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).

För andra pauser är den rekommenderade åtgärden att göra något av följande:

  • Migrera programmets filer till rätt katalog.
  • Lägg till en reservkontroll för den tidigare platsen i koden.

Berörda API:er