本文目录导读:

在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()),代码更简洁,功能更强大。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播