如何检测zip /压缩文件是否完全解压缩/未压缩?

时间:2012-12-17 12:42:12

标签: java file-io zipfile file-locking

我有一个java程序将文件夹(以及其中的所有文件)从一个位置复制到另一个位置以编程方式。现在假设用户将zip文件粘贴到此文件夹中然后解压缩。同时我的程序启动,然后复制只有在文件夹中解压缩的文件。我想等到文件解压缩完毕。

因此,我正在寻找一种程序化的方式,使用它我可以检测到zip文件已经完全解压缩,然后只能恢复正常的文件复制。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

查看是否可以重命名正在解压缩的文件。如果它不是“可恢复的”那么该文件可能已被锁定。

答案 1 :(得分:0)

没有可靠的方法可以做到这一点,因为你无法控制解压缩器;例如,用户可以决定仅解压缩一些文件。由于解压缩器不会告诉您用户在UI中选择了什么,因此没有可靠的方法来了解“所有”文件何时被解压缩。

解决方法:

  1. 用户必须解压缩不同文件夹中的文件,然后文件移动到您观看的文件夹中。在同一磁盘上的移动操作是原子操作,因此这将确保您只获得完整的文件。

  2. 接受ZIP存档作为输入并自行解压缩。这样,您就可以完全控制解压缩过程,并确保只处理完整的文件。此外,由于ZIP“目录”位于ZIP存档的末尾,因此这也将确保您只处理完整的ZIP存档。