我怎样才能找出java.io.File.mkdir()返回false的原因

时间:2012-05-24 15:50:44

标签: java file-io

如何找出java.io.File.mkdir()返回false的原因。 我可以手动创建目录。

更新: 我的代码如下所示:

String directoryName = "C:/some/path/";
File directory= new File(directoryName );
if (!directory.exists() && !directory.mkdir()) {
    throw new RuntimeException("Failed to create directory: " + directoryName);
}

5 个答案:

答案 0 :(得分:9)

如果父文件夹(示例中为some)尚不存在,则需要使用mkdirs()

答案 1 :(得分:2)

答案很简单,您正在尝试创建嵌套文件夹(文件夹中的文件夹)。对于嵌套文件夹,请使用File.mkdirs()。这有效,(测试过)。

答案 2 :(得分:1)

我认为你不能,至少不是来自Java。由于操作系统做出了这一决定,Java只是委托给它并返回结果。

您是否尝试过确保File对象指向您认为的位置?

更新:如果C:/ some不存在,必须首先创建它,然后才能尝试创建C:/ some / path。或者按照指出使用mkdirs()。

答案 3 :(得分:1)

如果您对Windows使用类似process monitor的内容,则可以查看操作系统级别尝试创建目录。

这可能会为您提供所需的信息。

您可能需要在进程监视器中使用过滤器,因为通常会有大量磁盘活动:)

答案 4 :(得分:0)

使用 cygwin

mkdir可能会返回false,但仍会继续创建文件夹。这似乎只是表明文件夹不存在。

您可能需要在directory.exists()来电后尝试mkdir()(或甚至mkdirs()