我已经检查过本网站和其他网站上的其他解决方案,但无法找到任何可以解决我问题的方法。我的路径肯定是正确的,文件肯定存在。还请注意.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,即使它能够打印正确的文件名,文件肯定存在,文件位于项目文件夹中的目录中。
当一个文件夹被放入监视文件夹时,我仍然会对目录进行伪造。
我无法弄清楚我在这里做错了什么......
感谢。