如何创建目录/文件夹?
一旦我测试了System.getProperty("user.home");
我必须创建一个目录(目录名“新文件夹”)当且仅当新文件夹不存在时。
如何创建目录/文件夹?
一旦我测试了System.getProperty("user.home");
我必须创建一个目录(目录名“新文件夹”)当且仅当新文件夹不存在时。
当前回答
在Java 7中,您可以使用Files.createDirectories()。
例如:
Files.createDirectories(Paths.get("/path/to/directory"));
其他回答
public class Test1 {
public static void main(String[] args)
{
String path = System.getProperty("user.home");
File dir=new File(path+"/new folder");
if(dir.exists()){
System.out.println("A folder with name 'new folder' is already exist in the path "+path);
}else{
dir.mkdir();
}
}
}
您可以尝试FileUtils#forceMkdir
FileUtils.forceMkdir("/path/directory");
这个库有很多有用的函数。
如果你想确保它被创建,那么:
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您可以使用其他东西来处理未创建的目录。
只是想向每个调用File.mkdir()或File.mkdirs()的人指出,要小心File对象是目录而不是文件。例如,如果你为路径/dir1/dir2/file.txt调用mkdirs(),它将创建一个名为file.txt的文件夹,这可能不是你想要的。如果你正在创建一个新文件,同时也想自动创建父文件夹,你可以这样做:
File file = new File(filePath);
if (file.getParentFile() != null) {
file.getParentFile().mkdirs();
}
创建单个目录。 新文件(C: \ \ Directory1) .mkdir (); 创建一个名为“Directory2”的目录及其所有子目录“Sub2″”和“Sub-Sub2″”。 新文件(“C: \ \ Directory2 \ \ Sub2 \ \ Sub-Sub2”).mkdirs ()
源码:这个完美的教程,你也找一个使用的例子。