除了使用file.getParentFile().mkdirs() ,其他方法
时间: 2024-05-03 13:22:24 浏览: 177
1. 使用Apache Commons IO库的FileUtils.forceMkdir()方法。这个方法会创建所有不存在的父目录。
2. 使用Java 7引入的Files.createDirectories()方法。这个方法也会创建所有不存在的父目录。
3. 使用Java 7引入的Path.getParent()方法获取父路径,然后使用Files.createDirectories()方法创建所有不存在的父目录。
4. 使用Guava库的Files.createParentDirs()方法。这个方法会创建所有不存在的父目录。
5. 使用自定义的递归方法创建所有不存在的父目录。例如:
```java
public static boolean createParentDirectories(File file) {
File parentFile = file.getParentFile();
if (parentFile != null && !parentFile.exists()) {
if (!createParentDirectories(parentFile)) {
return false;
}
if (!parentFile.mkdir()) {
return false;
}
}
return true;
}
```
相关问题
linux file.getParentFile().mkdirs() 报错
这个报错可能是因为你在使用getParentFile()方法时,该文件并不存在,因此无法创建其父目录。
你需要先判断该文件是否存在,若不存在,则需要先创建该文件的父目录,再创建该文件。可以使用下面的代码:
```
File file = new File("文件路径");
if (!file.exists()) {
file.getParentFile().mkdirs();
file.createNewFile();
}
```
其中,"文件路径"替换成你要操作的文件的路径。
File desc = new File(uploadDir + File.separator + fileName); if (!desc.exists()) { if (!desc.getParentFile().exists()) { desc.getParentFile().mkdirs(); } } return desc;将这两个if语句合并
可以将这两个if语句合并为一个if语句,如下所示:
```
File desc = new File(uploadDir + File.separator + fileName);
if (!desc.exists() && !desc.getParentFile().exists()) {
desc.getParentFile().mkdirs();
}
return desc;
```
这里使用了逻辑运算符&&,表示只有在desc不存在且其父目录也不存在时,才创建其父目录。如果desc或其父目录已经存在,则不会执行mkdirs()方法。这种方式可以使代码更加简洁易读。
阅读全文