Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A partir de .NET 8, el comportamiento de Environment.GetFolderPath en sistemas operativos Unix ha cambiado.
Descripción del cambio
En las tablas siguientes se muestra cómo cambia el valor de la ruta de acceso devuelta para cada sistema operativo Unix para varias carpetas especiales.
Linux
Valor SpecialFolder | Ruta de acceso (.NET 7 y versiones anteriores) | Ruta de acceso (.NET 8 y versiones posteriores) |
---|---|---|
MyDocuments |
$HOME |
Usa si está disponible; de lo contrario, usa XDG_DOCUMENTS_DIR ; de lo contrario, $HOME/Documents |
Personal |
$HOME |
Usa si está disponible; de lo contrario, usa XDG_DOCUMENTS_DIR ; de lo contrario, $HOME/Documents |
macOS
Valor SpecialFolder | Ruta de acceso (.NET 7 y versiones anteriores) | Ruta de acceso (.NET 8 y versiones posteriores) |
---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents ) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (compatibilidad con la biblioteca o la aplicación) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (compatibilidad con la biblioteca o la aplicación) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies ) |
Androide
Valor SpecialFolder | Ruta de acceso (.NET 7 y versiones anteriores) | Ruta de acceso (.NET 8 y versiones posteriores) |
---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Versión introducida
.NET 8 Preview 1
Tipo de cambio disruptivo
Este es un cambio de comportamiento.
Motivo del cambio
El comportamiento anterior era incorrecto y no satisface las expectativas del usuario para Linux, macOS y Android.
Acción recomendada
La interrupción más común es si está pasando System.Environment.SpecialFolder.Personal a Environment.GetFolderPath(Environment+SpecialFolder) en Unix para obtener el directorio $HOME
(Environment.GetFolderPath(Environment.SpecialFolder.Personal)
). Environment.SpecialFolder.Personal y Environment.SpecialFolder.MyDocuments son alias para el mismo valor de enumeración subyacente. Si usa Environment.SpecialFolder.Personal de esta manera, cambie el código para pasarlo Environment.SpecialFolder.UserProfile en su lugar (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
).
Para otras pausas, se recomienda realizar una de las siguientes acciones:
- Migre los archivos de la aplicación al directorio adecuado.
- Agregue una comprobación de reserva para la ubicación anterior al código.