Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
A partire da .NET 8, il comportamento di Environment.GetFolderPath nei sistemi operativi Unix è cambiato.
Descrizione delle modifiche
Le tabelle seguenti illustrano come cambia il valore del percorso restituito per ogni sistema operativo Unix per varie cartelle speciali.
Linux
Valore SpecialFolder | Percorso (.NET 7 e versioni precedenti) | Percorso (.NET 8 e versioni successive) |
---|---|---|
MyDocuments |
$HOME |
Utilizza XDG_DOCUMENTS_DIR , se disponibile; altrimenti $HOME/Documents |
Personal |
$HOME |
Utilizza XDG_DOCUMENTS_DIR , se disponibile; altrimenti $HOME/Documents |
macOS
Valore SpecialFolder | Percorso (.NET 7 e versioni precedenti) | Percorso (.NET 8 e versioni successive) |
---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (Libreria/Supporto applicazioni) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (Libreria/Supporto applicazioni) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies ) |
Androide
Valore SpecialFolder | Percorso (.NET 7 e versioni precedenti) | Percorso (.NET 8 e versioni successive) |
---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Versione introdotta
.NET 8 Preview 1
Tipo di cambiamento che interrompe la compatibilità
Questa modifica è una modifica funzionale.
Motivo della modifica
Il comportamento precedente non è corretto e non soddisfa le aspettative degli utenti per Linux, macOS e Android.
Azione consigliata
La rottura più comune si verifica se stai passando System.Environment.SpecialFolder.Personal a Environment.GetFolderPath(Environment+SpecialFolder) su Unix per ottenere la directory $HOME
(Environment.GetFolderPath(Environment.SpecialFolder.Personal)
).
Environment.SpecialFolder.Personal e Environment.SpecialFolder.MyDocuments sono alias per lo stesso valore di enumerazione sottostante. Se si usa Environment.SpecialFolder.Personal in questo modo, modificare il codice per passare Environment.SpecialFolder.UserProfile invece (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
).
Per altre interruzioni, l'azione consigliata consiste nell'eseguire una delle operazioni seguenti:
- Eseguire la migrazione dei file dell'applicazione alla directory appropriata.
- Aggiungi un controllo di fallback per il percorso precedente al tuo codice.