这个appdata方法是否也适用于linux?

时间:2012-09-20 19:45:09

标签: c# java operating-system

我只想知道......这段代码是否适用于linux和mac以及windows?

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

我问的原因是因为我知道windows管理appdata的方式与Mac和linux不同。

2 个答案:

答案 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实现决定如何处理它的扩展。