parentFile.mkdirs();
时间: 2024-05-29 12:16:31 浏览: 27
这行代码是 Java 中的文件操作语句,用于创建多级目录。如果 parentFile 指定的目录不存在,则会创建该目录。如果 parentFile 已经存在,则不进行任何操作。
例如,如果 parentFile 是 "/home/user/documents",该目录不存在,则该代码会创建该目录及其所有父级目录。
相关问题
@PostMapping("/uploadImg") public Object uploadImg(@RequestParam MultipartFile file) throws IOException { String originalFilename = file.getOriginalFilename(); String type = FileUtil.extName(originalFilename); long size = file.getSize(); // 定义一个文件唯一的标识码 String fileUUID = IdUtil.fastSimpleUUID() + StrUtil.DOT + type; File uploadFile = new File(FILE_UPLOAD_PATH + fileUUID); // 判断配置的文件目录是否存在,若不存在则创建一个新的文件目录 File parentFile = uploadFile.getParentFile(); if (!parentFile.exists()) { parentFile.mkdirs(); } String url; // 获取文件的md5 String md5 = SecureUtil.md5(file.getInputStream()); // 从数据库查询是否存在相同的记录 Files dbFiles = getFileByMd5(md5); if (dbFiles != null) { url = dbFiles.getUrl(); } else { // 上传文件到磁盘 file.transferTo(uploadFile); // 数据库若不存在重复文件,则不删除刚才上传的文件 url = "http://localhost:9090/file/" + fileUUID; } // 存储数据库 Files saveFile = new Files(); saveFile.setName(originalFilename); saveFile.setType(type); saveFile.setSize(size / 1024); // 单位 kb saveFile.setUrl(url); saveFile.setMd5(md5); fileMapper.insert(saveFile); Map<String, Object> map = new HashMap<>(); map.put("errno", 0); map.put("data", JSONUtil.parseArray("[{\"url\": \"" + url + "\"}]")); return map; }
这段代码是一个用于文件上传的接口,使用了Spring的@PostMapping注解。当请求到达该接口时,会从请求中获取上传的文件,并将其存储到本地磁盘上指定的目录中。如果该文件已经存在于数据库中,则会返回该文件对应的URL,否则会将其记录在数据库中,并返回该文件的URL。最后,将结果封装成一个Map对象返回给调用方。
除了使用file.getParentFile().mkdirs() ,其他方法
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;
}
```