Нельзя полагаться на переменные среды на разных платформах, но .NET Core делает известные / специальные папки доступными кросс-платформенным способом с помощью метода [Environment]::GetFolderPath()
.
Не все местоположения, определенные в реферате, доступны на всех платформах, но ApplicationData
- это:
[Environment]::GetFolderPath('ApplicationData')
Для имени пользователя jdoe
, приведенное выше дает следующие пути:
- Windows:
C:\Users\jdoe\AppData\Roaming
(эквивалент: $env:APPDATA
) - Linux:
/home/jdoe/.config
(эквивалент: $HOME/.config
) - macOS:
/Users/jdoe/.config
(эквивалентиз: $HOME/.config
)
Также обратите внимание на это предложение для GitHub , в котором предлагается представлять эти папки более PowerShell-идиоматическим способом через новое пространство имен $sf:
(для s pecial f старше), так что $sf:ApplicationData
будет эквивалентно приведенной выше команде.
Если вы хотите, чтобы это было реализовано, пусть ваш голос будет услышан там.Даже простой «палец вверх» помогает.