天天看点

Java递归建创建文件,解决目录不存在创建文件报错的问题

递归建文件即可,代码如下

public static void createFileRecursion(String fileName, Integer height) throws IOException {
        Path path = Paths.get(fileName);
        if (Files.exists(path)) {
            // TODO: 2021/11/13 如果文件存在
            return;
        }
        if (Files.exists(path.getParent())){
            // TODO: 2021/11/13 如果父级文件存在,直接创建文件
            if (height == 0){
                Files.createFile(path);
            }else {
                Files.createDirectory(path);
            }
        }else {
            createFileRecursion(path.getParent().toString(), height + 1);
            // TODO: 2021/11/13 这一步能保证path的父级一定存在了,现在需要把自己也建一下
            createFileRecursion(fileName,height);
        }
    }      

调用例子:

@Test
    public void demo(){
        try {
            GenerateFile.createFileRecursion("C:\\Users\\chaoj\\Desktop\\111111\\1\\2\\3\\4\\5\\key.txt",0);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }