我已经构建了一个 web 应用程序,用户可以在其中从他们的文件系统中选择一个 zip 文件(通过 asp:FileUpload)。然后应用程序解压缩 zipfile 和 ftp 的每个文件。
这是代码:
Public Sub Unzip(ByVal str As Stream, ByVal constr As String)
Dim zf As New ZipFile(str)
Dim ze As ZipEntry
Dim i As Integer = 0
While i < zf.Count
ze = zf.EntryByIndex(i)
i = i + 1
Dim ftp As New ftpItem(constr)
ftp.upload(ze.Name, "pic", zf.GetInputStream(i), ze.Name, ze.Name)
End While
zf.Close()
End Sub
ftpItem 类是我自己的一个处理 ftp 的类。ftp.upload 需要将要发送的文件的流作为第三个参数。
但是由于某种原因 zf.GetInputStream(i) 总是什么都不提供。