当文件在文件夹中时,程序应继续工作

时间:2016-04-14 17:56:33

标签: java jms ibm-mq

假设我有一个程序将文件从文件夹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) {
            }
        }

2 个答案:

答案 0 :(得分:0)

如果您在* nix上运行,则始终是当前目录('。')和父目录(' ..')相信将永远使长度> 0

在Windows上,存在相同的目录,但不确定它们是否被返回,在Windows中的侵入性较小。

listFiles()以文件形式返回目录中的任何内容,其中可能包含其他目录。如果您真的只想要文件,则可能需要创建文件过滤器。

答案 1 :(得分:0)

您要做的事情不能在一段简短的代码中完成。我创建了一个名为Universal File Mover(UFM)的开源项目。它的一个功能是“观察”文件然后用它们做些什么。即通过MQ或ftp或sftp或http或任何其他UFM操作发送它们。

下载UFM的源代码并提取处理观看目录或特定文件的'biz.capitalware.ufm.watch'包。