Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir do .NET 8, o comportamento de Environment.GetFolderPath nos sistemas operacionais Unix foi alterado.
Descrição da alteração
As tabelas a seguir mostram como o valor do caminho retornado é alterado para cada sistema operacional Unix para várias pastas especiais.
Linux
| Valor de SpecialFolder | Caminho (.NET 7 e anteriores) | Caminho (.NET 8 e posteriores) |
|---|---|---|
MyDocuments |
$HOME |
XDG_DOCUMENTS_DIR Usa se disponível; caso contrário,$HOME/Documents |
Personal |
$HOME |
XDG_DOCUMENTS_DIR Usa se disponível; caso contrário,$HOME/Documents |
macOS
| Valor de SpecialFolder | Caminho (.NET 7 e anteriores) | Caminho (.NET 8 e posteriores) |
|---|---|---|
MyDocuments |
$HOME |
NSDocumentDirectory ($HOME/Documents) |
Personal |
$HOME |
NSDocumentDirectory ($HOME/Documents) |
ApplicationData |
$HOME/.config |
NSApplicationSupportDirectory (suporte a biblioteca/aplicativo) |
LocalApplicationData |
$HOME/.local/share |
NSApplicationSupportDirectory (suporte a biblioteca/aplicativo) |
MyVideos |
$HOME/Videos |
NSMoviesDirectory ($HOME/Movies) |
Andróide
| Valor de SpecialFolder | Caminho (.NET 7 e anteriores) | Caminho (.NET 8 e posteriores) |
|---|---|---|
MyDocuments |
$HOME |
$HOME/Documents |
Personal |
$HOME |
$HOME/Documents |
Versão introduzida
.NET 8 versão prévia 1
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
O comportamento anterior estava incorreto e não atendia às expectativas do usuário para Linux, macOS e Android.
Ação recomendada
A interrupção mais comum é se você estiver passando System.Environment.SpecialFolder.Personal para Environment.GetFolderPath(Environment+SpecialFolder) no Unix para obter o diretório $HOME (Environment.GetFolderPath(Environment.SpecialFolder.Personal)). Environment.SpecialFolder.Personal e Environment.SpecialFolder.MyDocuments são aliases para o mesmo valor de enumeração subjacente. Se você estiver usando Environment.SpecialFolder.Personal dessa forma, altere seu código para passar Environment.SpecialFolder.UserProfile em vez disso (Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).
Para outros intervalos, a ação recomendada é realizar uma das seguintes ações:
- Migre os arquivos do aplicativo para o diretório apropriado.
- Adicione uma verificação de fallback para o local anterior ao seu código.