Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Począwszy od platformy .NET 8, zachowanie Environment.GetFolderPath w systemach operacyjnych Unix uległo zmianie.
Zmień opis
W poniższych tabelach pokazano, jak zwracana wartość ścieżki zmienia się dla każdego systemu operacyjnego Unix dla różnych folderów specjalnych.
Linuxa
| Wartość SpecialFolder | Ścieżka (.NET 7 i wcześniejsze) | Ścieżka (.NET 8 i późniejsze wersje) |
|---|---|---|
MyDocuments |
$HOME |
Używa XDG_DOCUMENTS_DIR jeśli jest dostępne; w innym przypadku $HOME/Documents |
Personal |
$HOME |
Używa XDG_DOCUMENTS_DIR jeśli jest dostępne; w innym przypadku $HOME/Documents |
macOS
| Wartość SpecialFolder | Ścieżka (.NET 7 i wcześniejsze) | Ścieżka (.NET 8 i późniejsze wersje) |
|---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (obsługa biblioteki/aplikacji) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (obsługa biblioteki/aplikacji) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies) |
Android
| Wartość SpecialFolder | Ścieżka (.NET 7 i wcześniejsze) | Ścieżka (.NET 8 i późniejsze wersje) |
|---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Wersja wprowadzona
.NET 8 (wersja zapoznawcza 1)
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Poprzednie zachowanie było nieprawidłowe i nie spełniało oczekiwań użytkownika dla systemów Linux, macOS i Android.
Zalecana akcja
Najczęstszym błędem jest przekazywanie System.Environment.SpecialFolder.Personal do Environment.GetFolderPath(Environment+SpecialFolder) w systemie Unix, aby uzyskać dostęp do katalogu $HOME (Environment.GetFolderPath(Environment.SpecialFolder.Personal)).
Environment.SpecialFolder.Personal i Environment.SpecialFolder.MyDocuments są aliasami dla tej samej bazowej wartości wyliczenia. Jeśli używasz Environment.SpecialFolder.Personal w ten sposób, zmień kod, aby zamiast tego przekazać Environment.SpecialFolder.UserProfile (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).
W przypadku innych przerw zalecaną akcją jest wykonanie jednej z następujących czynności:
- Przeprowadź migrację plików aplikacji do odpowiedniego katalogu.
- Uwzględnij mechanizm awaryjny kontroli poprzedniej lokalizacji w swoim kodzie.