2016-04-14 60 views
2

假設我有一個程序將文件從文件夾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) { 
      } 
     } 

回答

0

如果你在* nix中運行,總是有當前目錄('。')和父目錄('..'),我相信這將始終使長度> 0.

在Windows上,存在相同的目錄,但不確定它們是否返回,在Windows中。

而listFiles()將目錄中的任何內容作爲File返回,其中可能包含其他目錄。如果你真的只想要文件,你可能需要創建一個文件過濾器。

0

您正在嘗試做的事情不能在代碼的一個簡短部分中完成。我創建了一個名爲Universal File Mover(UFM)的開源項目。它的一個功能是「觀看」文件,然後對它們做些什麼。即通過MQ或ftp或sftp或http或任何其他UFM操作發送它們。

去下載UFM的源代碼,並拉出處理觀​​看目錄或特定文件的'biz.capitalware.ufm.watch'包。

+0

所以沒有簡單的方法來監視文件傳入?哦,這將是非常好的提及在什麼行動或什麼是如此的建立wtach :)謝謝 – KleineKiwi

+0

認真?您無法下載代碼或閱讀手冊的目錄,並注意一個名爲「Watch」的操作。認真!有人提供了一切,而你仍然是葡萄酒,你不會爲了做最微小的工作而煩惱。我的天啊。 – Roger

相關問題