递归建文件即可,代码如下
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();
}
}
效果如下