我有一个camel file2 dropbox侦听器来检测文件,然后读取同一目录中的其他文件。检测到文件时,Apache Camel将添加.camelLock
标记,并在几秒钟内将其删除。
现在的问题是,在非常偶然的情况下,我的代码会检测到.camelLock
文件(因为它还没有被camel删除),并且在完成以下方法之前,camel会删除该文件。所以我的方法返回java.io.UncheckedIOException: java.nio.file.NoSuchFileException
以下是camel file2的文档:http://camel.apache.org/file2.html
private List<String> getFileNames(String fullPath) throws IOException {
try (Stream<Path> pathStream = Files.walk(Paths.get(fullPath))) {
return pathStream.filter(Files::isRegularFile)
.filter(f -> !f.toString().toLowerCase()
.endsWith("camellock"))
.map(Path::toString)
.map(f -> f.substring(f.lastIndexOf(File.separator) + 1, f.length()))
.collect(Collectors.toList());
}
}
有什么想法吗?