我想编写一个瘟疫测试,该测试在Linux和Windows上均适用。该测试创建了vscode代码段,我想确保它在正确的位置创建它们。
我想使测试尽可能通用,并根据操作系统在合适的位置自动进行测试。
我知道在Windows上我可以使用$ env:AppDAta,但是该变量在Linux上不存在。 我可以用什么代替,这在两个平台上都可以。
干杯!
答案 0 :(得分:1)
您不能依赖跨平台的环境变量,但是.NET Core确实通过其[Environment]::GetFolderPath()
方法以跨平台的方式提供了已知/特殊文件夹。
不是所有在摘要中定义的位置都可在所有平台上使用,但是ApplicationData
是:
[Environment]::GetFolderPath('ApplicationData')
对于用户名jdoe
,以上代码会产生以下路径:
C:\Users\jdoe\AppData\Roaming
(等效于:$env:APPDATA
)/home/jdoe/.config
(等效于:$HOME/.config
)/Users/jdoe/.config
(等效于:$HOME/.config
)还请注意this proposal on GitHub,该建议建议通过新的命名空间$sf:
(对于 s 特别是 f older),因此$sf:ApplicationData
与上述命令等效。
如果您希望看到它的实现,请在那里发表声音。即使是简单的“竖起大拇指”也有帮助。