即使文件存在,Windows Java Spring isFile()也返回false

时间:2018-01-11 13:58:32

标签: java spring file intellij-idea path

我已经检查过本网站和其他网站上的其他解决方案,但无法找到任何可以解决我问题的方法。我的路径肯定是正确的,文件肯定存在。还请注意.getAbsoluteFile()对我得到的结果没有任何影响。

我在独立的Spring应用程序中遇到了一些奇怪的行为。在WatchEvent中我检测到正在创建的任何新文件,我尝试从中创建一个File对象。奇怪的是我可以打印文件的名称但是isFile()返回false而length()返回0.我已经测试了很多不同的文件,但我得到了相同的结果。文件是本地文件。

以下是相关的代码段:

public void monitor() {
        try {
            while (key.isValid()) {
                for (WatchEvent<?> event : key.pollEvents()) {
                    if (event.kind() == ENTRY_CREATE) {
                        System.out.println("New file detected in FTP Folder");
                        WatchEvent<Path> ev = cast(event);
                        System.out.println("EV Context: " + ev.context());
                        System.out.println("EV Context TO STRING: " + ev.context().toString());
                        System.out.println("EV Context Absolute File: " + new File(ev.context().toString()).getAbsoluteFile());
                        File file = new File(ev.context().toString()).getAbsoluteFile;                            System.out.println("File Name is " + file.getName());
                        System.out.println("Is file " + file.isFile());
                        System.out.println("Is Directory " + file.isDirectory());
                }
            }
            key.reset();
        }
    } catch (NullPointerException e) {
        System.out.println(e.getMessage());
    }
}

,输出如下:

New file detected in FTP Folder
EV Context: <the file name in printed correctly with extension>
EV Context Absolute File: <prints correct full path with extension>
File Name is <prints correct file name>
Is file false
is Directory false

isFile()返回的值为false,即使它能够打印正确的文件名,文件肯定存在,文件位于项目文件夹中的目录中。

当一个文件夹被放入监视文件夹时,我仍然会对目录进行伪造。

我无法弄清楚我在这里做错了什么......

感谢。

0 个答案:

没有答案