我正在尝试在groovy程序中压缩整个目录。我已经使用内置的ant目标来压缩目录并且通常这是有效的,除了有时2-3个文件正在使用中我不关心但是邮政编码实际上因为这个而中止 - 关于如何修复的任何想法此?
谢谢!
代码:
def ant = new AntBuilder()
ant.zip(
destfile: "C:/temp.zip",
basedir: "c:/Temp/"
)
答案 0 :(得分:1)
所以我目前使用的解决方案是忽略正在使用的文件,因为它们总是相同的......我把它们放在一个exclude子句中,见下文:
def ant = new AntBuilder()
ant.zip(
destfile: "C:/Temp.zip",
basedir: "c:/Temp",
level: 9,
excludes: "**/file1.dat, **/file2.dat, **/file3.dat"
)
我仍然愿意接受更好的解决方案!
答案 1 :(得分:1)
我不熟悉Groovy或AntBuilder,但我相信您可以使用VShadow程序创建目录的卷影副本,并从那里进行备份。
创建驱动器C的卷影副本:
vshadow -p C:
将影子副本装载为新的驱动器号:
vshadow -el = ShadowCopyId ,Z:
驱动器Z:将是C:的副本,它应该允许您打开文件。
完成后,删除卷影副本:
vshadow -ds = ShadowCopyId
答案 2 :(得分:0)
没有“更好”的解决方案,因为主要问题似乎是你在使用你的应用程序(Firefox)同时压缩其工作文件。
您可以使用ZipOutputStream等实现自己的zip机制,但只要您不关闭Firefox或定期检查所有文件在锁定之前是否锁定,您就会遇到同样的问题。 / p>