本文目录导读:

在Java中创建文件夹(目录)主要有以下几种方式,根据需求选择合适的方法。
创建单级目录
import java.io.File;
public class CreateFolderExample {
public static void main(String[] args) {
// 创建单级目录
File folder = new File("D:\\myFolder");
// 如果文件夹不存在则创建
if (!folder.exists()) {
boolean created = folder.mkdir(); // mkdir() 创建单级目录
if (created) {
System.out.println("文件夹创建成功!");
} else {
System.out.println("文件夹创建失败!");
}
} else {
System.out.println("文件夹已存在!");
}
}
}
创建多级目录
import java.io.File;
public class CreateMultiLevelFolder {
public static void main(String[] args) {
// 创建多级目录(父目录不存在时自动创建)
File folder = new File("D:\\parent\\child\\grandchild");
// mkdirs() 可以创建多级目录
if (!folder.exists()) {
boolean created = folder.mkdirs(); // 关键方法:mkdirs()
if (created) {
System.out.println("多级目录创建成功!");
} else {
System.out.println("多级目录创建失败!");
}
}
}
}
使用 Java NIO(推荐方式)
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class CreateFolderNIO {
public static void main(String[] args) {
try {
// 创建单级目录
Path singlePath = Paths.get("D:\\nioFolder");
Files.createDirectory(singlePath);
System.out.println("单级目录创建成功!");
// 创建多级目录
Path multiPath = Paths.get("D:\\nioParent\\nioChild");
Files.createDirectories(multiPath); // 创建多级目录
System.out.println("多级目录创建成功!");
} catch (Exception e) {
System.out.println("创建失败:" + e.getMessage());
e.printStackTrace();
}
}
}
完整的工具类示例
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FolderUtils {
/**
* 创建文件夹(File方式)
* @param folderPath 文件夹路径
* @param createParents 是否创建父目录
* @return 是否创建成功
*/
public static boolean createFolder(String folderPath, boolean createParents) {
File folder = new File(folderPath);
if (folder.exists()) {
System.out.println("文件夹已存在: " + folderPath);
return true;
}
boolean created;
if (createParents) {
created = folder.mkdirs(); // 创建多级目录
} else {
created = folder.mkdir(); // 创建单级目录
}
if (created) {
System.out.println("文件夹创建成功: " + folderPath);
} else {
System.out.println("文件夹创建失败: " + folderPath);
}
return created;
}
/**
* 创建文件夹(NIO方式,推荐)
* @param folderPath 文件夹路径
* @param createParents 是否创建父目录
* @return 是否创建成功
*/
public static boolean createFolderNIO(String folderPath, boolean createParents) {
try {
Path path = Paths.get(folderPath);
if (Files.exists(path)) {
System.out.println("文件夹已存在: " + folderPath);
return true;
}
if (createParents) {
Files.createDirectories(path); // 创建多级目录
} else {
Files.createDirectory(path); // 创建单级目录
}
System.out.println("文件夹创建成功: " + folderPath);
return true;
} catch (Exception e) {
System.out.println("文件夹创建失败: " + e.getMessage());
return false;
}
}
public static void main(String[] args) {
// 测试示例
createFolder("D:\\testFolder", false); // 创建单级
createFolder("D:\\parent\\child", true); // 创建多级
createFolderNIO("D:\\nioTest\\sub", true); // NIO方式创建多级
}
}
关键区别
| 方法 | 用途 | 特点 |
|---|---|---|
mkdir() |
创建单级目录 | 父目录必须存在 |
mkdirs() |
创建多级目录 | 自动创建不存在的父目录 |
Files.createDirectory() |
创建单级目录(NIO) | 父目录必须存在 |
Files.createDirectories() |
创建多级目录(NIO) | 自动创建不存在的父目录 |
注意事项
- 权限问题:确保有权限在目标位置创建文件夹
- 路径分隔符:Windows使用或,Linux/Mac使用,建议使用
File.separator - 相对路径:相对于当前项目的运行目录
- 异常处理:建议捕获可能出现的异常
推荐使用 Java NIO 方式(Files.createDirectories()),代码更简洁,功能更强大。