如何创建目录/文件夹?
一旦我测试了System.getProperty("user.home");
我必须创建一个目录(目录名“新文件夹”)当且仅当新文件夹不存在时。
如何创建目录/文件夹?
一旦我测试了System.getProperty("user.home");
我必须创建一个目录(目录名“新文件夹”)当且仅当新文件夹不存在时。
当前回答
在Java 7中,您可以使用Files.createDirectories()。
例如:
Files.createDirectories(Paths.get("/path/to/directory"));
其他回答
整洁干净:
import java.io.File;
public class RevCreateDirectory {
public void revCreateDirectory() {
//To create single directory/folder
File file = new File("D:\\Directory1");
if (!file.exists()) {
if (file.mkdir()) {
System.out.println("Directory is created!");
} else {
System.out.println("Failed to create directory!");
}
}
//To create multiple directories/folders
File files = new File("D:\\Directory2\\Sub2\\Sub-Sub2");
if (!files.exists()) {
if (files.mkdirs()) {
System.out.println("Multiple directories are created!");
} else {
System.out.println("Failed to create multiple directories!");
}
}
}
}
如果你想确保它被创建,那么:
final String path = "target/logs/";
final File logsDir = new File(path);
final boolean logsDirCreated = logsDir.mkdir();
if (!logsDirCreated) {
final boolean logsDirExists = logsDir.exists();
assertThat(logsDirExists).isTrue();
}
因为mkDir()返回一个布尔值,如果你不使用这个变量,findbugs会为它哭泣。这也不好…
mkDir()只在mkDir()创建时返回true。 如果dir存在,它将返回false,因此要验证您创建的dir,如果mkDir()返回false,则只调用exists()。
assertThat()将检查结果,如果exists()返回false则失败。Ofc您可以使用其他东西来处理未创建的目录。
该功能允许在用户的主目录上创建新目录。
private static void createDirectory(final String directoryName) {
final File homeDirectory = new File(System.getProperty("user.home"));
final File newDirectory = new File(homeDirectory, directoryName);
if(!newDirectory.exists()) {
boolean result = newDirectory.mkdir();
if(result) {
System.out.println("The directory is created !");
}
} else {
System.out.println("The directory already exist");
}
}
Mkdir vs mkdirs
如果要创建单个目录,请使用mkdir
new File("/path/directory").mkdir();
如果想要创建文件夹结构的层次结构,请使用mkdirs
new File("/path/directory").mkdirs();
大约7年后,我会将其更新为Bozho建议的更好的方法。
File theDir = new File("/path/directory");
if (!theDir.exists()){
theDir.mkdirs();
}