Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Rekommenderad åtgärd
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.