【问题标题】:Program should continue working when file is in folder当文件在文件夹中时程序应该继续工作
【发布时间】:2016-08-06 10:43:43
【问题描述】:

假设我有一个程序将文件从文件夹A 移动到文件夹B,然后通过 jms 发送它们。 该部分工作正常,但当没有更多文件时,它仍会尝试移动文件。 Atm 我有一个解决方法,如果没有文件,连接将关闭,但正如标题中所说,程序应该停止,或者更确切地说“空闲”,直到文件夹中的文件 is然后继续移动和发送这些文件夹。我不知道这在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) {
            }
        }

【问题讨论】:

    标签: java jms ibm-mq


    【解决方案1】:

    如果你在 *nix 上运行,总会有当前目录 ('.') 和父目录 ('..'),我相信它们的长度总是 > 0。

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

    listFiles() 将目录中的任何内容作为文件返回,其中可能包括其他目录。如果您真的只想要文件,您可能需要创建一个文件过滤器。

    【讨论】:

      【解决方案2】:

      您尝试做的事情不能在一小段代码中完成。我创建了一个名为Universal File Mover (UFM) 的开源项目。它的功能之一是“监视”文件,然后对它们做一些事情。即通过 MQ 或 ftp 或 sftp 或 http 或任何其他 UFM 操作发送它们。

      去下载 UFM 的源代码并取出处理监视目录或特定文件的“biz.capitalware.ufm.watch”包。

      【讨论】:

      • 所以没有简单的方法来监视传入的文件?哦,很高兴提及 wtach 在什么行动或什么情况下成立 :) 谢谢
      • 说真的??您无法下载代码或阅读手册的目录并注意到名为“Watch”的操作。严重地!!有人付出了一切,而您仍然可以不费吹灰之力去做最微小的工作。天哪。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2020-03-11
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多