2012-12-17 17 views
0

我有一個java程序從一個位置複製一個文件夾(以及所有文件)從一個位置到另一個位置。現在假設用戶在這個文件夾中粘貼一個zip文件,然後解壓縮它。同時我的程序啓動,然後它只複製在文件夾中解壓縮的文件。我想等到這個文件解壓縮完成。如何檢測一個zip /壓縮文件是否完全unziped/uncompressed?

因此,我正在尋找一種程序化的方式,使用它我可以檢測到zip文件已經完全解壓縮,然後才恢復正常的文件複製。是否有任何方法可以做到這一點?

+0

你可以提供一些關於環境的細節。 OS JVM版本。等 –

+0

你的意思是你這樣做*兼容*與解壓縮?關於你所能做的就是尋找一個.zip後綴。但我知道沒有自動解壓縮程序會自動解壓縮內部zip文件。 –

+0

(對我來說,你必須知道解壓縮正在運行,並等待它完成。) –

回答

1

看看你是否可以重命名解壓縮的文件。如果它不是「renamable」,那麼該文件可能被鎖定。

+0

這隻適用於Windows。另外,如果用戶沒有退出解壓縮程序,該進程將被阻止。 –

0

沒有可靠的方法來做到這一點,因爲你無法控制解壓縮;例如,用戶可以決定只解壓一些文件。由於解壓縮程序不會告訴您用戶在用戶界面中選擇了什麼,因此沒有可靠的方法可以知道「所有」文件何時被解壓縮。

解決方法:

  1. 用戶必須在不同的文件夾中解壓縮文件,然後移動文件到您觀看的文件夾。在同一個磁盤上移動操作是原子操作,所以這將確保您只能獲得完整的文件。

  2. 接受ZIP壓縮文件作爲輸入並自己解壓縮它們。這樣,您可以完全控制解壓過程,並確保只處理完整的文件。另外,由於ZIP「目錄」位於ZIP歸檔的末尾,因此這也將確保您只處理完整的ZIP歸檔。

相關問題