Freigeben über


GetFolderPath-Verhalten unter Unix

Ab .NET 8 hat sich das Verhalten von Environment.GetFolderPath Unix-Betriebssystemen geändert.

Änderungsbeschreibung

In den folgenden Tabellen wird gezeigt, wie sich der zurückgegebene Pfadwert für jedes Unix-Betriebssystem für verschiedene spezielle Ordner ändert.

Linux (Englisch)

SpecialFolder-Wert Pfad (.NET 7 und früher) Pfad (.NET 8 und höher)
MyDocuments $HOME Verwendet XDG_DOCUMENTS_DIR , falls verfügbar; andernfalls $HOME/Documents
Personal $HOME Verwendet XDG_DOCUMENTS_DIR , falls verfügbar; andernfalls $HOME/Documents

macOS

SpecialFolder-Wert Pfad (.NET 7 und früher) Pfad (.NET 8 und höher)
MyDocuments $HOME NSDocumentDirectory ($HOME/Documents)
Personal $HOME NSDocumentDirectory ($HOME/Documents)
ApplicationData $HOME/.config NSApplicationSupportDirectory (Bibliothek/Anwendungsunterstützung)
LocalApplicationData $HOME/.local/share NSApplicationSupportDirectory (Bibliothek/Anwendungsunterstützung)
MyVideos $HOME/Videos NSMoviesDirectory ($HOME/Movies)

Android

SpecialFolder-Wert Pfad (.NET 7 und früher) Pfad (.NET 8 und höher)
MyDocuments $HOME $HOME/Documents
Personal $HOME $HOME/Documents

Eingeführte Version

.NET 8 Preview 1

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

Das vorherige Verhalten war falsch und erfüllte die Benutzererwartungen für Linux, macOS und Android nicht.

Die häufigste Unterbrechung tritt auf, wenn Sie in Unix System.Environment.SpecialFolder.Personal an Environment.GetFolderPath(Environment+SpecialFolder) übergeben, um das $HOME-Verzeichnis (Environment.GetFolderPath(Environment.SpecialFolder.Personal)) abzurufen. Environment.SpecialFolder.Personal und Environment.SpecialFolder.MyDocuments sind Aliase für denselben zugrunde liegenden Enumerationswert. Wenn Sie Environment.SpecialFolder.Personal auf diese Weise verwenden, ändern Sie Ihren Code, sodass stattdessen Environment.SpecialFolder.UserProfile übergeben wird (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).

Bei anderen Unterbrechungen besteht die empfohlene Aktion darin, eine der folgenden Aktionen auszuführen:

  • Migrieren Sie die Dateien Ihrer Anwendung in das entsprechende Verzeichnis.
  • Fügen Sie dem Code eine Fallbacküberprüfung für den vorherigen Speicherort hinzu.

Betroffene APIs