Java 当文件位于文件夹中时,程序应继续工作

Java 当文件位于文件夹中时,程序应继续工作,java,jms,ibm-mq,Java,Jms,Ibm Mq,假设我有一个程序,可以将文件从文件夹a移动到文件夹B,然后通过jms发送。 该部分工作正常,但当没有更多文件时,它仍尝试移动文件。Atm我找到了一个解决办法,如果没有文件,连接就会关闭,但正如标题中所说,程序应该停止,或者说是“空闲”,直到文件位于文件夹a中,然后继续移动和发送这些文件夹。我不知道这在Java中是否可行,所以请提供一些帮助,我将不胜感激:) 我的工作环境代码: //dir is the "folder a" path if (dir.listFiles().length == 0

假设我有一个程序,可以将文件从文件夹
a
移动到文件夹
B
,然后通过jms发送。 该部分工作正常,但当没有更多文件时,它仍尝试移动文件。Atm我找到了一个解决办法,如果没有文件,连接就会关闭,但正如标题中所说,程序应该停止,或者说是“空闲”,直到文件位于文件夹a中,然后继续移动和发送这些文件夹。我不知道这在Java中是否可行,所以请提供一些帮助,我将不胜感激:) 我的工作环境代码:

//dir is the "folder a" path
if (dir.listFiles().length == 0) {
            try {
                Thread.sleep(60000);
                if (dir.listFiles().length == 0) {
                    session.close();
                }
            } catch (InterruptedException e) {
            }
        }

如果在*nix上运行,则始终存在当前目录('.')和父目录('.'),我相信它们将始终使长度>0

在Windows上,存在相同的目录,但不确定是否返回这些目录,因此Windows中的侵入性较小


并且listFiles()将目录中的任何内容作为文件返回,其中可能包括其他目录。如果您确实只需要文件,则可能需要创建一个文件筛选器。

您试图做的事情不可能在一段简短的代码中完成。我创建了一个名为(UFM)的开源项目。它的功能之一是“监视”文件,然后对其进行处理。i、 e.通过MQ或ftp或sftp或http或任何其他UFM操作发送它们


下载UFM的源代码,并取出“biz.capitalware.UFM.watch”包,该包用于监视目录或特定文件。

所以没有简单的方法来监视传入的文件?哦,如果能在wtach成立后的任何行动中提及这一点,那该多好啊:)真的谢谢你??您不能下载代码或阅读手册的目录并注意到一个名为“Watch”的操作。认真地有人付出了一切,而你却仍然喝着酒,你根本懒得做一点点的工作。天啊。