Java:为什么不创建最后一个文件夹?

时间:2015-03-23 18:14:57

标签: java file mkdir

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永远不会创建。

2 个答案:

答案 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");