除了使用file.getParentFile().mkdirs() ,其他方法
时间: 2024-05-03 17:22:24 浏览: 13
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() 报错
这个错误可能是因为在 Linux 系统中,文件路径中包含了 Windows 系统中的路径分隔符 "\ ",导致程序无法创建文件夹。
解决方法:
在文件路径中使用 Linux 系统的路径分隔符 "/",或者使用 Java 中的 File.separator 来表示路径分隔符。
例如:
```
File file = new File("/home/user/testdir/testfile.txt");
file.getParentFile().mkdirs();
```
或者:
```
File file = new File(File.separator + "home" + File.separator + "user" + File.separator + "testdir" + File.separator + "testfile.txt");
file.getParentFile().mkdirs();
```
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()方法。这种方式可以使代码更加简洁易读。