我只想知道......这段代码是否适用于linux和mac以及windows?
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
我问的原因是因为我知道windows管理appdata的方式与Mac和linux不同。
答案 0 :(得分:4)
在Java中,如何获取Windows和unix操作系统之间的应用程序数据目录存在差异。至于C#,你的示例代码所使用的语言(尽管问题被标记为“java”),我不能肯定地说。
过去,我一直在Windows上使用AppData文件夹,只使用unix系统的unix home。
public static String getAppDataPath() {
if (System.getProperty("os.name").contains("Windows")) {
return System.getenv("APPDATA");
} else {
return getUnixHome();
}
}
public static String getUnixHome() {
String home = System.getProperty("user.home");
return home != null ? home : "~";
}
另请注意,在unix系统上,最好隐藏用户主页中的appdata,因此您应该在mac和linux上使用.
开始文件。
答案 1 :(得分:1)
'appdata'的概念是Windows特定的概念。虽然Linux和OSX系统有一些存储数据的约定,但没有人称它们为“appdata”。在Linux或OSX上,编写名称以“。”开头的文件并不罕见。进入主目录。在OSX上,还有一个精心设计的Apple特定系统首选项。
您可能只考虑使用Java Preferences API而不是处理'appdata',除了JVM的Windows实现决定如何处理它的扩展。