0

我在 Windows 2008 服务器上安装并运行良好的 DotNetZip。

使用经典的 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' 

有人知道我做错了什么吗?

谢谢。

4

1 回答 1

1

我认为您误解了文档。如果第二个参数是null,则使用要添加的文件的目录路径。如果第二个参数是空字符串“”,则文件将添加到 zip 中的根级别。快速查看 Ioniz.zip.dll 表明,AddFile方法的单参数覆盖只是调用双参数覆盖,第二个参数设置为 null。

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

objZip.AddFile sFileArray(iCount), ""

得到你想要的结果。

于 2012-08-10T08:32:03.613 回答