mkdir()没有创建新目录

我正在使用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()每个程序都有同样的问题。

如果要创建多个目录,则必须将mkdirs()与s一起使用。 某些地方获得许可也可能值得检查您是否可以写()到该位置。 这两个都在File类上

它的obj.mkdirs()

看看这个:

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

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

创建目录示例

看起来你需要在你的路径上工作一点,因为它看起来不像File会推断“abc”。

此外,请确保您对尝试创建目录的路径具有权限。 如果不这样做,它将失败。 我玩了Java已经有一段时间了,所以不确定你是否需要在整个路径上做mkdir调用(即/ here /,/ here / now-here /,/ here / now-在这里/最后)或不。 认为它可能是递归的,但值得validation。

实际上,从查看其他答案看起来mkdirs将是递归的,mkdir不是。 我会选择mkdirs,特别是如果从一开始就不知道输入,否则你最终会用mkdir编写一个完全相同的函数。

mkdir需要抽象路径,而不是相对路径。 试着用……

 File f2 = new File (f1, "C:\\"); 

… 例如。

来自Java DOC:

public boolean mkdir()

创建此抽象路径名指定的目录。

返回:

当且仅当目录已创建时才为true; 否则是假的

抛出:

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

在您的情况下,您可以在File类中使用makedirectories方法。

 File dir = new File("path name"); boolean isCreated = dir.mkdirs(); 

这里makedirectories方法将创建文件对象所代表的路径中缺少的所有目录。

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

http://www.flowerbrackets.com/create-directory-java-program/

https://docs.oracle.com/javase/6/docs/api/java/io/File.html#canWrite%28%29