Sdílet prostřednictvím


Chování GetFolderPath v unixu

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

Změnit popis

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.

Operační systém Linux

Hodnota určené pro SpecialFolder Cesta (.NET verze 7 a dřívější) 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 určené pro SpecialFolder Cesta (.NET verze 7 a dřívější) 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 určené pro SpecialFolder Cesta (.NET verze 7 a dřívější) Cesta (.NET 8 a novější)
MyDocuments $HOME $HOME/Documents
Personal $HOME $HOME/Documents

Verze byla představena

.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, když na Unixu předáváte System.Environment.SpecialFolder.Personal do Environment.GetFolderPath(Environment+SpecialFolder) k získání adresáře ($HOME). 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 přestávek je doporučeno udělat jednu z následujících věcí:

  • 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