0

在我的 Java 应用程序中,我找到了 APPDATA 文件夹,然后尝试创建自己的子文件夹:

    if (System.getProperty("os.name").startsWith("Windows")) { 
        settingsDir = System.getenv("APPDATA") + "\\MyApp\\";

        if (!(new File(settingsDir)).isDirectory()) {
            if (!(new File(settingsDir)).getParentFile().mkdirs()) {
                Error("Failed to create directory " + settingsDir);
            }
        }
    }

在 Windows XP 上这会失败,说无法创建文件夹。

隐藏的应用程序数据文件夹是只读的,显然无法更改。

这可能是创建新文件夹失败的原因吗?如果是这样,从 Java 在 APPDATA 文件夹中创建新文件夹的典型方法是什么?

4

1 回答 1

1

哎呀,这似乎是我自己的代码中的一个错误。我在代码中有一个剩余getParentFile()部分。正确的版本是:

if (System.getProperty("os.name").startsWith("Windows")) { 
    settingsDir = System.getenv("APPDATA") + "\\MyApp\\";

    if (!(new File(settingsDir)).isDirectory()) {
        if (!(new File(settingsDir)).mkdirs()) {
            Error("Failed to create directory " + settingsDir);
        }
    }
}

我在 APPDATA 文件夹的文件夹中创建了一个文件夹。这是不允许的。

显然,虽然 APPDATA 文件夹的属性显示为“只读”,但允许在此目录中创建文件和文件夹。

我的坏,对不起噪音。我将把这个话题留在这里作为档案。

于 2012-11-06T14:34:18.180 回答