我有一个java程序将文件夹(以及其中的所有文件)从一个位置复制到另一个位置以编程方式。现在假设用户将zip文件粘贴到此文件夹中然后解压缩。同时我的程序启动,然后复制只有在文件夹中解压缩的文件。我想等到文件解压缩完毕。
因此,我正在寻找一种程序化的方式,使用它我可以检测到zip文件已经完全解压缩,然后只能恢复正常的文件复制。有没有办法做到这一点?
答案 0 :(得分:1)
查看是否可以重命名正在解压缩的文件。如果它不是“可恢复的”那么该文件可能已被锁定。
答案 1 :(得分:0)
没有可靠的方法可以做到这一点,因为你无法控制解压缩器;例如,用户可以决定仅解压缩一些文件。由于解压缩器不会告诉您用户在UI中选择了什么,因此没有可靠的方法来了解“所有”文件何时被解压缩。
解决方法:
用户必须解压缩不同文件夹中的文件,然后将文件移动到您观看的文件夹中。在同一磁盘上的移动操作是原子操作,因此这将确保您只获得完整的文件。
接受ZIP存档作为输入并自行解压缩。这样,您就可以完全控制解压缩过程,并确保只处理完整的文件。此外,由于ZIP“目录”位于ZIP存档的末尾,因此这也将确保您只处理完整的ZIP存档。