Chování GetFolderPath v unixu

Od verze .NET 8 se chování operačních Environment.GetFolderPath systémů Unix změnilo.

Změna popisu

Následující tabulky ukazují, jak se vrácené hodnoty cesty mění pro každý operační systém Unix pro různé speciální složky.

Linux

Hodnota SpecialFolder Cesta (.NET 7 a starší) Cesta (.NET 8 a novější)
MyDocuments $HOME Používá XDG_DOCUMENTS_DIR se, pokud je k dispozici; jinak $HOME/Documents
Personal $HOME Používá XDG_DOCUMENTS_DIR se, pokud je k dispozici; jinak $HOME/Documents

macOS

Hodnota SpecialFolder Cesta (.NET 7 a starší) Cesta (.NET 8 a novější)
MyDocuments $HOME NSDocumentDirectory ($HOME/Documents)
Personal $HOME NSDocumentDirectory ($HOME/Documents)
ApplicationData $HOME/.config NSApplicationSupportDirectory (podpora knihovny nebo aplikace)
LocalApplicationData $HOME/.local/share NSApplicationSupportDirectory (podpora knihovny nebo aplikace)
MyVideos $HOME/Videos NSMoviesDirectory ($HOME/Movies)

Android

Hodnota SpecialFolder Cesta (.NET 7 a starší) Cesta (.NET 8 a novější)
MyDocuments $HOME $HOME/Documents
Personal $HOME $HOME/Documents

Zavedená verze

.NET 8 Preview 1

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Předchozí chování bylo nesprávné a nesplňuje očekávání uživatelů pro Linux, macOS a Android.

Nejběžnějším přerušením je System.Environment.SpecialFolder.Personal předání do Environment.GetFolderPath(Environment+SpecialFolder) unixového $HOME systému, abyste získali adresář (Environment.GetFolderPath(Environment.SpecialFolder.Personal)). Environment.SpecialFolder.Personal a Environment.SpecialFolder.MyDocuments jsou aliasy pro stejnou základní hodnotu výčtu. Pokud tímto způsobem používáte Environment.SpecialFolder.Personal , změňte kód tak, aby místo toho předal Environment.SpecialFolder.UserProfile (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).

U ostatních konců je doporučená akce provést jednu z následujících akcí:

  • Migrujte soubory aplikace do příslušného adresáře.
  • Přidejte náhradní kontrolu pro předchozí umístění do kódu.

Ovlivněná rozhraní API