GetFolderPath-gedrag op Unix
Vanaf .NET 8 is het gedrag van Environment.GetFolderPath unix-besturingssystemen gewijzigd.
Wijzigingsbeschrijving
In de volgende tabellen ziet u hoe de geretourneerde padwaarde voor elk Unix-besturingssysteem voor verschillende speciale mappen verandert.
Linux
SpecialFolder-waarde | Pad (.NET 7 en eerder) | Pad (.NET 8 en hoger) |
---|---|---|
MyDocuments |
$HOME |
Gebruikt XDG_DOCUMENTS_DIR indien beschikbaar; anders $HOME/Documents |
Personal |
$HOME |
Gebruikt XDG_DOCUMENTS_DIR indien beschikbaar; anders $HOME/Documents |
macOS
SpecialFolder-waarde | Pad (.NET 7 en eerder) | Pad (.NET 8 en hoger) |
---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (bibliotheek/toepassingsondersteuning) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (bibliotheek/toepassingsondersteuning) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies ) |
Android
SpecialFolder-waarde | Pad (.NET 7 en eerder) | Pad (.NET 8 en hoger) |
---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Versie geïntroduceerd
.NET 8 Preview 1
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Het vorige gedrag was onjuist en voldeed niet aan de gebruikersverwachtingen voor Linux, macOS en Android.
Aanbevolen actie
De meest voorkomende onderbreking is als u doorgeeft System.Environment.SpecialFolder.Personal aan Environment.GetFolderPath(Environment+SpecialFolder) Unix om de $HOME
map (Environment.GetFolderPath(Environment.SpecialFolder.Personal)
) op te halen. Environment.SpecialFolder.Personal en Environment.SpecialFolder.MyDocuments aliassen zijn voor dezelfde onderliggende opsommingswaarde. Als u op deze manier werkt Environment.SpecialFolder.Personal , wijzigt u de code om in plaats daarvan door te geven Environment.SpecialFolder.UserProfile (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
).
Voor andere onderbrekingen is de aanbevolen actie een van de volgende handelingen uit te voeren:
- Migreer de bestanden van uw toepassing naar de juiste map.
- Voeg een terugvalcontrole toe voor de vorige locatie aan uw code.