Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À compter de .NET 8, le comportement des Environment.GetFolderPath systèmes d’exploitation Unix a changé.
Description de la modification
Les tableaux suivants montrent comment la valeur de chemin retournée change pour chaque système d’exploitation Unix pour différents dossiers spéciaux.
Linux
| Valeur SpecialFolder | Chemin d’accès (.NET 7 et versions antérieures) | Chemin d’accès (.NET 8 et versions ultérieures) |
|---|---|---|
MyDocuments |
$HOME |
Utilise XDG_DOCUMENTS_DIR si disponible ; sinon $HOME/Documents |
Personal |
$HOME |
Utilise XDG_DOCUMENTS_DIR si disponible ; sinon $HOME/Documents |
macOS
| Valeur SpecialFolder | Chemin d’accès (.NET 7 et versions antérieures) | Chemin d’accès (.NET 8 et versions ultérieures) |
|---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (bibliothèque/support d’application) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (bibliothèque/support d’application) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies) |
Androïde
| Valeur SpecialFolder | Chemin d’accès (.NET 7 et versions antérieures) | Chemin d’accès (.NET 8 et versions ultérieures) |
|---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Version introduite
.NET 8 Préversion 1
Type de changement cassant
Ce changement est un changement de comportement.
Raison de la modification
Le comportement précédent était incorrect et ne répondait pas aux attentes des utilisateurs pour Linux, macOS et Android.
Action recommandée
La rupture la plus courante est celle qui consiste à passer System.Environment.SpecialFolder.Personal à Environment.GetFolderPath(Environment+SpecialFolder) sur Unix pour obtenir le répertoire $HOME (Environment.GetFolderPath(Environment.SpecialFolder.Personal)).
Environment.SpecialFolder.Personal et Environment.SpecialFolder.MyDocuments sont des alias pour la même valeur d’énumération sous-jacente. Si vous utilisez Environment.SpecialFolder.Personal de cette façon, modifiez votre code pour passer Environment.SpecialFolder.UserProfile (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).
Pour les autres pauses, l’action recommandée consiste à effectuer l’une des actions suivantes :
- Migrez les fichiers de votre application vers le répertoire approprié.
- Ajoutez un contrôle de secours pour la position précédente à votre code.