你能告诉我如何将指定的文件压缩到同一个Zip文件中吗?让我告诉我的文件夹是如何填充的:
感谢。
答案 0 :(得分:11)
我使用开源程序7Zip和命令行,如:
"C:\Program Files\7-Zip\7z.exe" a My.zip MyFileOrFolder
如果您正在使用NTFS分区,它还可以解决您的问题,让Windows自动压缩备份文件所在的文件夹(右键单击您的文件夹,选择“属性”,“高级”,然后单击“压缩内容以保护数据”)
答案 1 :(得分:5)
你可以使用DotNetZip来实现它 - 它最初是作为一个供程序员使用的库而生成的,但是在库中构建和随附的示例应用程序本身就变得非常有用。
其中一个“样本”称为zipit.exe - 一种控制台工具。指定不存在的zipfile以创建新的zipfile,或指定现有的zipfile来更新它。
zipit.exe ZipArchive.zip c:\data\folder1
您可以指定一个或多个文件名,目录或描述要包含哪些文件的逻辑表达式。表达式:
name = *.jpg
任何.jpg文件。
mtime > 07/01/2009
2009年7月1日午夜之后具有上次修改时间的任何文件。还有创建时间和访问时间的ctime和atime。
ctime > 07/01/2009:07:53:00
2009年7月1日上午7:53之后创建时间的任何文件。
size > 320mb
任何大小超过320mb的文件。您也可以使用 kb 或 gb 。或者省略字节大小的字符。你可以使用<或=作为操作。
attr != H
任何没有Hidden属性集的文件。其他属性包括S = system,R = Readonly,A = Archive。当然,您也可以测试该属性是否为ON(使用=而不是!=)。
attr != H and size > 320mb
包括满足这两个条件的文件。您也可以使用OR作为结合。使用parens对复杂表达式进行分组。
name = *.jpg or name = *.gif
包括满足一个或另一个条件的文件。
(name = *.jpg) or (name = *.gif)
与上述相同。
(mtime >= 07/01/2009) and (mtime < 07/02/2009)
7月1日修改的任何文件。从午夜到午夜。
(name = *.jpg) AND (mtime >= 07/01/2009) and (mtime < 07/02/2009)
7月1日修改的任何.jpg文件。
(name = *.jpg) and (size >= 100kb) and (mtime >= 07/01/2009) and (mtime < 07/02/2009)
任何.jpg文件,大小为100kb或以上,于7月1日修改。
使用zipit.exe工具上的其他选项,您还可以:
示例:
zipit.exe Archive.zip -D c:\project1 -r+ "(name = *.xlsx) and (mtime >= 07/01/2009) and (mtime < 07/31/2009)"
zipit.exe Unpack.exe -sfx w -D project2 -r+ "(name = *.pdf) and (size > 100kb)"
DotNetZip是免费的。
所有这些功能也可以在库的.NET界面中使用。还有一个GUI工具。
答案 2 :(得分:3)
我放弃了WinZip,转而使用7-Zip,因为它快速,免费,高效,适用于Windows和Linux。
如果您是WinZip粉丝,请查看WinZip命令行支持插件:http://winzip.com/prodpagecl.htm
您可以存档Windows命令行允许的任意数量的文件或目录:
wzzip archive.zip dir1 dir2 dir3 ...
答案 3 :(得分:2)
您可以在http://gnuwin32.sourceforge.net/packages/zip.htm下载适用于Windows的GNU zip。如果您想获得整个UNIX命令行路由,请使用http://www.cygwin.com/。
手册页给出了这个似乎可以解决您的问题的示例,还有许多其他命令行选项:
例如,如果foo.zip存在且包含foo / file1和 foo / file2,目录foo包含文件foo / file1和foo / file3,然后:
zip -r foo.zip foo
或更简洁
zip -r foo foo
将替换foo.zip中的foo / file1并将foo / file3添加到foo.zip。在这之后, foo.zip包含foo / file1,foo / file2和foo / file3,其中foo / file2不变 之前。
答案 4 :(得分:1)
查看一个名为PKZIP的旧程序。我相信你也可以用WinZip和7Zip来做到这一点。