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

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

我相信 mkdirs 认为 classes 是一个文件并且什么都不做,但是当我执行时

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

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

UPD:在这个文件夹中,我还有 classes.jar 文件,当我尝试创建 /classes/ 目录时它失败了。但是,当我尝试创建例如 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

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

4

3 回答 3

1

你需要检查两件事

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

于 2015-07-24T15:17:19.370 回答
1
  1. 检查返回值以了解目录是否已创建
  2. 如果父母不存在,使用 Apache Utils FileUtils.html#forceMkdir(java.io.File) 创建包含所有父母的目录
于 2015-07-24T15:28:20.753 回答
0

您应该编写如下代码:

 new File(filePath, "classes").mkdirs();
 new File(filePath, "tyhdtyurtu/classes").mkdirs();
于 2015-07-24T15:09:36.000 回答