使用所有父文件夹在Java中创建文件

时间:2019-06-26 07:53:02

标签: java file

在Java中以任何方式创建没有父文件夹和父文件的父文件夹的文件

这是要创建的文件的完整路径。D:\test3\ts435\te\util.log

此路径中没有任何文件夹,这意味着D:\下没有任何内容。

在Java中,当我创建此文件时

File testFile=new File(filePath);
testFile.createNewFile();

它说找不到路径。然后,我尝试创建父文件夹“ te”。然后它再次失败,表示找不到父文件夹“ ts435”。

有什么办法可以强制创建文件吗?要创建带有或不带有其父级的文件,并且存在上级文件夹。

更新2019-06-28:

大家好,我终于找到原因了。有两种方法,mkdir()和mkdirs()。如果目标文件夹的父文件夹不存在,则mkdir()将返回false,因为它无法强制构建整个文件夹结构。

但是, mkdirs() 可以做到这一点。无论父文件夹是否存在,它都可以构建整个文件夹链。

3 个答案:

答案 0 :(得分:6)

您可以使用此方法File#mkdirs()确保父目录存在。

File f = new File("D:\\test3\\ts435\\te\\util.log");
f.getParentFile().mkdirs();
// ...

如果父目录不存在,它将创建它们。

答案 1 :(得分:0)

File testFile=new File("D:\\test3\\ts435\\te\\util.log");

if(! testFile.getParentFile().exists()) {
    testFile.getParentFile().mkdirs();
}

testFile.createNewFile();

答案 2 :(得分:0)

您可以使用以下方法一起创建文件和目录。

public static String createFile(String filePath, String fileName) throws BotServiceException {
        File directory = new File(filePath);
        if (!directory.exists() && !directory.mkdirs()) {
            throw new Exception("Directory does not exist and could not be created");
        }
        File newFile = new File(filePath+ File.separator + fileName);
        boolean isSuccess = newFile.createNewFile(); 
return newFile.getAbsolutePath();
}