public static void VDirectoryMaker(File des) {
if (!des.exists()) {
File dest = new File(des.getAbsolutePath().substring(0, des.getAbsolutePath().length()-(des.getName().length())));
VDirectoryMaker(dest);
dest.mkdir();
}
}
如果des
等于new File("dir1\\dir2\\dir3\\dir4\\dir5")
,为什么它只会使所有不存在的文件夹达到dir4? dir5永远不会创建。
答案 0 :(得分:1)
这是因为最后dir5
被视为dir4
目录中没有扩展名的文件。
尝试添加最后一个反斜杠,应该按照预期创建目录。
new File("dir1\\dir2\\dir3\\dir4\\dir5\\")
您还应该查看File.mkdirs()
。
答案 1 :(得分:0)
此代码正在删除路径的最后部分:
des.getAbsolutePath().substring(
0, des.getAbsolutePath().length()-(des.getName().length()))
如果您的输入是文件的完整文件路径,例如:
,这将起作用VDirectoryMaker(new File("dir1\\dir2\\dir3\\dir4\\targetfile.txt");