我正在尝试在groovy程序中压缩整个目录。我已经使用了内置的ant目标来压缩目录,通常这是有效的,除了有时2-3个文件正在使用中,我并不关心,但邮政编码实际上因为这个而中止-有什么想法如何解决这个问题吗?
谢谢!
代码:
def ant = new AntBuilder()
ant.zip(
destfile: "C:/temp.zip",
basedir: "c:/Temp/"
) 发布于 2009-07-28 11:14:18
因此,我目前使用的解决方案是忽略正在使用的文件,因为它们总是相同的…我将它们放在一个exclude子句中,如下所示:
def ant = new AntBuilder()
ant.zip(
destfile: "C:/Temp.zip",
basedir: "c:/Temp",
level: 9,
excludes: "**/file1.dat, **/file2.dat, **/file3.dat"
)我仍然对更好的解决方案持开放态度!
发布于 2009-07-30 22:39:59
我不熟悉Groovy或AntBuilder,但我相信您可以使用VShadow程序创建目录的卷影副本,并从那里执行备份。
创建驱动器C:的卷影副本:
vshadow -p C:
将卷影副本装载为新的驱动器号:
vshadow -el=ShadowCopyId,Z:
驱动器Z:将是C:的副本,C:将允许您打开这些文件。
完成后,删除卷影副本:
vshadow -ds=ShadowCopyId
发布于 2009-07-28 11:26:36
没有“更好”的解决方案,因为主要问题似乎是你正在使用你的应用程序(Firefox),同时压缩它的工作文件。
你可以实现你自己的压缩机制,使用ZipOutputStream等等,但是只要你不关闭火狐或者在压缩它们之前定期检查所有的文件都是解锁的,你就会遇到同样的问题。
https://stackoverflow.com/questions/1191694
复制相似问题