2011-12-01 59 views
0

我想从我的磁盘列出文件到BlockingQueue和线程将处理它们。在中途,如果磁盘上的文件被更新,则队列也将刷新。有什么办法可以找到文件是否正在被线程处理,并且不需要再次在队列中添加?如何检测文件是否在java中进行处理?

+0

我使用Windows。 – RamIndani

+4

我无法理解你的问题。我认为你需要把它分解成至少四个句子。 – pzulw

+0

“..如果磁盘上的文件得到更新..” - 所以你想知道如果文件是外部更新,而不是你的线程? –

回答

0

如果你想idnetify其中有一个文件打开过程中,你可以使用

刚刚发现现在使用谷歌。


你可以做

Set<File> queued = ... 
Queue<File> toProcess = 


// add to the queue if its a new entry. 
if(queued.add(file)) 
    toProcess.add(file); 
+0

执行此代码“..如果磁盘上的文件得到更新..”检查? –

+0

您需要在Java 7中使用WatchService来完成此操作,或者通过重复导航目录来查找差异。 –

+0

WatchService会告诉你更改的来源是否是RamIndani的线程? –

相关问题