显示错误结果的java isDirectory

显示错误结果的java isDirectory,java,windows,directory,Java,Windows,Directory,我有下面的代码来检查文件是否是目录,如果不是,则创建它 File folder = new File(destFolder); if (!folder.isDirectory()) { if (!folder.mkdir()) { System.out.println("Could not create " + folder.getAbsolutePath()); return

我有下面的代码来检查文件是否是目录,如果不是,则创建它

        File folder = new File(destFolder);
        if (!folder.isDirectory()) {
            if (!folder.mkdir()) {
                System.out.println("Could not create " + folder.getAbsolutePath());
                return null;
            }
        }
代码输出总是“无法创建”。我检查并确认同名文件夹已经存在。原因可能是什么

如果我删除destFolder,它仍然显示相同的错误。检查了权限,我对该文件夹拥有读、写和执行权限。(奇怪的是,它一直工作到上周五!)


我的机器运行Windows7,我正在运行来自Netbeans的代码。Java平台is-JDK 1.7

只有当文件不是目录,换句话说,如果它是文件,才可以调用mkdir()。您正在尝试对文件运行mkdir()。您应该检查它是否存在,而不是它是否是一个目录。

…并了解是否(parent.exists()&&parent.isDirectory()&&parent.canWrite())@JustinC我们在Java 6和Windows UAC下遇到了
canWrite
的问题,返回的是误报-不是您不应该使用它,而是您应该小心它…;)@贾斯汀:我想这将是下一个问题的答案。@Madc,谢谢,很高兴知道。我接触java的时间比我想象的要长。似乎这个问题可能已经修复,或者与这个bug密切相关。。这是问题的关键吗?@JustinC我认为这与我们没有直接关系,因为我们没有得到提示。基本上,我们调用
File#canWrite
,它返回
true
,因此我们尝试写入该位置,该位置(如果我的内存服务器正确)不会导致错误,但也不会写入任何内容:P