Java mkdir()未创建新目录

Java mkdir()未创建新目录,java,file-handling,Java,File Handling,我正在使用Eclipse和jdk1.7。我正在使用文件处理制作一个基本程序,其中将生成目录中的输出目录。但是当我运行程序时,输出显示为false,并且没有创建目录。我认为输出是错误的,因为存在同名目录,但这不是原因。所以我需要帮助。这是我的密码: import java.io.File; public class P { public static void main(String[] args) { File f1 = new File ("abc");

我正在使用Eclipse和jdk1.7。我正在使用文件处理制作一个基本程序,其中将生成目录中的输出目录。但是当我运行程序时,输出显示为false,并且没有创建目录。我认为输出是错误的,因为存在同名目录,但这不是原因。所以我需要帮助。这是我的密码:

import java.io.File;

public class P {
    public static void main(String[] args) {
        File f1 = new File ("abc");
        File f2 = new File (f1,"abc");
        System.out.println(f2.mkdir());
    }
}
其输出为false,但尚未创建目录。 我如何解决这个问题?这不仅仅是在这个程序中-我调用方法
mkdir()
的每个程序都有相同的问题。

如果要创建多个目录,必须使用s。由于有些地方是允许的,所以可能还值得检查一下您是否可以前往该地点。这两个文件都在File类中

its
obj.mkdirs()

看看这个:

File  f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());

第一次打印不会创建目录并返回
false
,但第二次打印会创建目录并返回
true

mkdir需要的是抽象路径,而不是相对路径。尝试使用

File f2 = new File (f1, "C:\\");
。。。比如说

来自Java文档:

公共布尔值mkdir()

创建以此抽象路径名命名的目录

返回:

当且仅当目录已创建时为true;否则就错了

抛出:

SecurityException—如果存在安全管理器,且其SecurityManager.checkWrite(java.lang.String)方法不允许创建命名目录

看起来你们需要在你们的路径上工作一点,因为看起来文件不会推断出“abc”

另外,请确保您对尝试创建目录的路径具有权限。如果你不这样做,它就会失败。我已经有一段时间没有玩Java了,所以不确定是否需要在整个路径中执行mkdir调用(即/here/,/here/now here/,/here/now here/final)。我认为它可能是递归的,但这值得验证


实际上,从其他答案来看,mkdir是递归的,mkdir不是。我会使用mkdir,特别是如果从一开始就不知道输入,否则最终会用mkdir编写一个函数,它会做完全相同的事情

在您的例子中,您可以在
文件
类中使用makedirectories方法

File dir = new File("path name");
boolean isCreated = dir.mkdirs();
这里makedirectories方法将创建文件对象表示的路径中缺少的所有目录

来源和参考如下(详细解释)


调用唯一的
文件.mkdirs()
通常不起作用。 在评估中调用它,例如-

if(file.mkdirs()){ //do something}
 boolean result = file.mkdirs();
或者, 在转让中,如—

if(file.mkdirs()){ //do something}
 boolean result = file.mkdirs();

确保目录名中没有点。例如:“ab.c”应改为“abc”。

是否存在“abc”并且是目录?您是否在程序的工作目录中查找新目录?(打印新文件(“”.getAbsolutePath()以查找WD)对于诊断,请打印。也许它试图在您没有写访问权限的位置创建目录?Java7引入了使用异常而不是布尔返回值的Files类。这有助于获取失败内容的文本描述,以便将来调试。是否在任何地方记录了这一点?如果是这样,我就找不到了。