我们有不同分类的文件,例如CatA..CatD。每个分类都有一个关联的文件夹,可以由用户进行配置。例如,CatA对应到C:\Path\To\CatA,CatB对应到C:\Path\To\CatB,而CatC和CatD对应到C:\Path\To\CatCD。
现在我想根据规范将这些文件备份和还原到zip文件中。
生成的zip文件应该具有如下结构:
我使用VCLZip通过对Pathname属性的一些hack操作,以及在每个作业中多次调用Zip和UnZip(Selected)方法来实现这一点。然而,我更喜欢使用一次调用Zip/UnZip(Selected)方法,这样VCLZip可以更准确地计算总体进度,从而得到更平滑的进度条。
我能够实现这个目标是通过在OnStartZip处理程序中滥用TVCLUnzip.FilesList.Objects属性将一些每个文件类别的信息“传输”到ZipHeader.directory中,但这似乎过于复杂和脆弱,所以我希望有一个更直接的解决方案,但我自己并没有想出来。你有什么想法吗?
现在我想根据规范将这些文件备份和还原到zip文件中。
[CatA]
SomeFile.abc
*.txt
[CatB]
File3.xyz
File4.xyz
.
.
.
生成的zip文件应该具有如下结构:
CatA
SomeFile.abc
aaa.txt
bbb.txt
ccc.txt
CatB
File3.xyz
File4.xyz
.
.
.
我使用VCLZip通过对Pathname属性的一些hack操作,以及在每个作业中多次调用Zip和UnZip(Selected)方法来实现这一点。然而,我更喜欢使用一次调用Zip/UnZip(Selected)方法,这样VCLZip可以更准确地计算总体进度,从而得到更平滑的进度条。
我能够实现这个目标是通过在OnStartZip处理程序中滥用TVCLUnzip.FilesList.Objects属性将一些每个文件类别的信息“传输”到ZipHeader.directory中,但这似乎过于复杂和脆弱,所以我希望有一个更直接的解决方案,但我自己并没有想出来。你有什么想法吗?
OnStartZip
的在线帮助中有一个示例,它在最后一刻更改路径,并提到了哪些其他属性是安全更改的。对于您来说唯一有点复杂的是根据传递的文件名获取正确的信息,而您已经成功解决了这个问题。我建议您保持现状。 - user743382