Java - 文件 - mkdirs不会制作dirs

时间:2015-07-24 14:56:50

标签: java file mkdirs

new File(filePath, "/classes/").mkdirs();

filePath是一个目录,它存在。 classes是一个应该创建的新目录

我相信mkdirs认为类是一个文件并且没有做任何事情,但是当我执行时

new File(filePath, "/tyhdtyurtu/classes/").mkdirs();

/tyhdtyurtu/classes/它被创建了!怎么解决这个问题?如何创建所有需要的目标?

UPD: 在这个文件夹里面我也有classes.jar文件,当我尝试创建/ classes / dir时它失败了。但是当我尝试创建例如classes1时,它可以工作。为什么呢?

UPD2:

System.out.println(new File(apkName, "classes").exists());
System.out.println(new File(apkName, "classes").mkdirs());
System.out.println(new File(apkName, "classes").exists());
System.out.println(new File(apkName, "classes").isDirectory());
System.out.println(new File(apkName, "classes").getAbsolutePath());

输出:

false
true
true
true
C:\Users\Admin\Videos\App\classes

当我将链接从输出复制到资源管理器时,我看到资源管理器无法找到此路径的错误消息。如果我能够创建除此之外的任何文件夹,我认为我没有任何权限

3 个答案:

答案 0 :(得分:1)

你需要检查2件事

1. you have write permissions
2. the directory exists or not

您可以参考以下链接

http://www.ekiras.com/2015/06/how-to-create-nested-folders-in-java.html

答案 1 :(得分:1)

  1. 检查返回值以了解目录是否已创建
  2. 如果父母不存在,请使用Apache Utils FileUtils.html #forceMkdir(java.io.File)创建所有父母的目录

答案 2 :(得分:0)

您应该编码如下:

 new File(filePath, "classes").mkdirs();
 new File(filePath, "tyhdtyurtu/classes").mkdirs();