File.Exists 无法识别 ~ Mac 上的快捷方式?

File.Exists doesn't recognise ~ shortcut on Mac?

File.Exists("~/Documents/test.dat") returns 错误,但 File.Exists("Users/MyUser/Documents/test.dat") returns 正确。

~ 是您的主目录 /Users/User 在 MacOS 上的快捷方式,这是一个错误还是一个似乎不受支持的记录功能?

~ 字符特定于 shell。例如,Bash 有一个很大的 set of behaviors,以 ~ 字符开头的路径可以做到。

当您使用大多数语言进行编程时,此扩展不可用,因为您不在 bash(或其他)shell 中。相反,我会得到 $HOME 环境变量。对于 C#,它看起来像:

File.Exists(GetEnvironmentVariable("HOME") + "/Documents/test.dat")

虽然我还没有测试过这个。

编辑

如前所述,另一种可能性是使用 Environment.SpecialFolder 枚举。尽管许多枚举非常 Windows 特定,但这意味着成为一个跨平台助手。根据您的评论,枚举 Environment.SpecialFolder.MyDocuments 应该将您带到 Mac 上的 /Users/username/Documents,因为这与 Windows 中的 C:\Users\username\My Documents 相同。但它似乎不一样。真可惜,因为它允许更多的跨平台代码。