2012-12-29 45 views
4

我比較使用的Java 7 如果存在於目錄中的somefile.txt,但在目錄B不存在2個目錄,我想2情況之間進行區分:使用Java比較目錄:如何識別刪除的文件?

  1. somefile.txt在前兩個目錄,然後將其從目錄中B.
  2. somefile.txt剛剛添加到目錄A(從來沒有在目錄B)

我不能使用任何監控,管理日誌\歷史中刪除。 另外我想找到獨立於操作系統的解決方案。

難道我猜如果somefile.txt是新的或通過比較它的lastModified與lastModified兩個文件夾在某種方式? 我覺得有一些簡單的算法解決方案,但我無法找到它了...

幫助...

回答

2

你不能說羯羊文件在B新的或剛剛從A刪除,除非你有一些記錄或病史文件夾及其內容,然後您可以將歷史記錄與當前狀態進行比較。

就你而言,你只有目錄的當前狀態,沒有辦法猜測之前發生了什麼。

+0

同意。從層次結構的快照中,沒有辦法,缺少歷史記錄,添加或刪除了什麼。 – MJZ

1

爲你需要確定哪些目錄(A或B)是newerr副本這是舊版本。也許你可以從A中的所有文件中獲取最新的文件修改時間,並將其與B中的相同計算進行比較,並告訴哪棵樹更新? 然後告訴1和2是很容易的 - 如果文件位於較新的目錄中,但不在較舊的文件夾中,則創建該文件,否則將其刪除。

根據您的問題,您可能需要使用文件創建時間,而不是修改時間