【问题标题】:Can't create file. mkdirs() Always return false无法创建文件。 mkdirs() 总是返回 false
【发布时间】:2013-07-12 18:34:25
【问题描述】:

我有那个代码,但我无法创建文件。 configFile.getParentFile().mkdirs();返回 false。

前段时间有效,我只是导出我的项目,然后无缘无故停止工作。

    File configFile = new File(ProfessionalWarns.getPluginDataFolder(),
            "config.yml");
    if (!configFile.exists()) {
        configFile.getParentFile().mkdirs();
        forceConfigUpdate = true;
    }

所有类(bukkit 插件的代码): http://pastebin.com/hTPetAxu

【问题讨论】:

  • 你对路径上的所有目录都有写权限吗?
  • @AlexanderPogrebnyak Hymm...用于保存 bukkit 插件的所有文件的默认路径,所以我必须拥有它,而且前段时间有效...我只是重新启动 Eclipse 和...噗。 ..

标签: java file return mkdirs


【解决方案1】:

mkdir 创建一个目录而不是一个文件。当您获取文件的父文件,然后对其调用 mkdir 并且它已经存在时,它无法创建。因为父级已经存在。

编辑:

你可能想这样做:

File configFile = new File(ProfessionalWarns.getPluginDataFolder(),
    "config.yml");
if (!configFile.exists()) {
    boolean fileWasCreated = configFile.createNewFile();
    forceConfigUpdate = true;
}

【讨论】:

  • 我之前也试过,任何版本都行不通。我再试一次……
  • 测试...还是一样。
  • 如果您尝试创建 File 而不是 Directory,我编辑的答案应该适合您。
  • Hyyym,非常感谢,因为它有效,但是......这很奇怪......我在 3 个插件中使用 mkdirs......一切都很好。无论如何...谢谢
  • 没问题。 mkdir 创建一个目录。我不确定该代码如何为您工作,但我很高兴它现在已排序。
猜你喜欢
  • 2014-02-22
  • 2015-12-22
  • 2013-03-26
  • 2012-08-25
  • 2016-09-13
  • 2017-08-02
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多