我只是想知道...此代码在 linux 和 mac 以及 windows 中是否有效?
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
我问的原因是因为我知道 Windows 管理 appdata 的方式与 Mac 和 linux 不同。
我只是想知道...此代码在 linux 和 mac 以及 windows 中是否有效?
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
我问的原因是因为我知道 Windows 管理 appdata 的方式与 Mac 和 linux 不同。
在 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 上以文件开头。
“appdata”的概念是特定于 Windows 的概念。虽然 Linux 和 OSX 系统有一些存储数据的约定,但没有人称它们为“appdata”。在 Linux 或 OSX 上,编写名称以“.”开头的文件并不少见。进入主目录。在 OSX 上,还有一个详细的 Apple 特定系统偏好设置。
您可能只是考虑使用 Java Preferences API 而根本不处理“appdata”,除非 JVM 的 Windows 实现决定如何处理它。