使用带有经典ASP的DotNetZip在zip文件的根目录下添加文件

时间:2012-08-09 18:31:31

标签: asp-classic dotnetzip

我安装了DotNetZip并在Windows 2008服务器上正常运行。

使用传统的ASP页面,我想将一堆逗号分隔的文件捆绑到用户并通过zip文件发送。

以下代码工作正常,但它存储了所有路径信息,因此zip文件中的文件位于一些荒谬的目录中,如C:\Inetpub\wwwroot\appname\_temp\

我正在使用以下代码:

Set objZip = CreateObject("Ionic.Zip.ZipFile")
sFileArray = Split(sFileArray, "|")
For iCount = 0 To UBound(sFileArray)
If sFileArray(iCount) <> "" Then
objZip.AddFile sFileArray(iCount)
End If
Next
objZip.Name = sFilePath & "test.zip"
objZip.Save()
objZip.Dispose()
Set objZip = Nothing

我看到AddFile方法允许您在添加第二个参数时指定添加文件在zip文件中的位置。根据文档objZip.AddFile sFileArray(iCount), ""应该将文件放在zip文件的根目录中。

但是,当我添加该参数时,我收到以下错误:

 Wrong number of arguments or invalid property assignment: 'objZip.AddFile' 

任何人都知道我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你错误地记录了文档。如果第二个参数是null,则使用正在添加的文件的目录路径。如果第二个参数是空字符串“”,则将文件添加到zip中的根级别。快速浏览一下Ioniz.zip.dll会发现AddFile方法的单个参数覆盖只是调用double参数override,第二个参数设置为null。

因此,您的添加文件应如下所示:

objZip.AddFile sFileArray(iCount), ""

获得你想要的结果。