你好,我想用java创建目录和子目录。 我的目录结构是从当前应用程序目录开始的,当前项目目录中的表示如下......
Images
|
|+ Background
|
|+ Foreground
|
|+Necklace
|+Earrings
|+Etc...
我知道如何创建目录,但是我需要创建子目录,我尝试使用以下代码,接下来的步骤应该是什么?
File file = new File("Images");
file.mkdir();
答案 0 :(得分:24)
您可以使用File.mkdir()或File.mkdirs()创建目录。在这两者之间,后一种方法更宽容,并将根据需要创建所有中间目录。此外,由于我在您的问题中看到您使用“\\”,因此建议您使用File.separator作为便携式路径分隔符字符串。
答案 1 :(得分:13)
从 Java 7 开始,您可以使用java.nio.file.Files
& java.nio.file.Paths
课程。
Path path = Paths.get("C:\\Images\\Background\\..\\Foreground\\Necklace\\..\\Earrings\\..\\Etc");
try {
Files.createDirectories(path);
} catch (IOException e) {
System.err.println("Cannot create directories - " + e);
}
这是一个棘手的解决方案(因为我只使用一条路径转到整个结构)。
如果你不喜欢棘手的解决方案,你可以使用4条简单的路径:
Path p1 = Paths.get("C:\\Images\\Background");
Path p2 = Paths.get("C:\\Images\\Foreground\\Necklace");
Path p3 = Paths.get("C:\\Images\\Foreground\\Earrings");
Path p4 = Paths.get("C:\\Images\\Foreground\\Etc");
然后为所有这些方法调用createDirectories
方法:
Files.createDirectories(p1);
Files.createDirectories(p2);
Files.createDirectories(p3);
Files.createDirectories(p4);
答案 2 :(得分:3)
您可以使用File.mkdirs()创建所有父目录。
File.mkdirs() - 创建此抽象路径名所指定的目录,包括任何必要但不存在的父目录。请注意,如果此操作失败,则可能已成功创建了一些必要的父目录。
Java Doc - File.mkdirs()
答案 3 :(得分:2)
你可以使用File#mkdirs()
和
// The "/" is cross-platform safe as a path-separator in Java.
// So is "\\" but that's twice the characters!
String path = createImages.getAbsolutePath() + "/Images";
File f = new File(path);
if (!f.isDirectory()) {
boolean success = f.mkdirs();
if (success) {
System.out.println("Created path: " + f.getPath());
} else {
System.out.println("Could not create path: " + f.getPath());
}
} else {
System.out.println("Path exists: " + f.getPath());
}
根据链接的Javadoc,
创建此抽象路径名所指定的目录,包括任何必要但不存在的父目录。请注意,如果此操作失败,则可能已成功创建了一些必要的父目录。
答案 4 :(得分:0)
您可以只使用file.mkdirs()
,它将创建子目录。
String path = images + File.separator + Background + File.separator + Foreground + File.separator + Necklace + File.separator + Earrings ;
File file = new File( path );
file.mkdirs();