我已經構建了一個web應用程序,用戶可以從他的文件系統中選擇一個zip文件(通過asp:FileUpload)。然後,應用程序解壓縮zipfile和ftp的每個文件。SharpZipLib GetInputStream
下面的代碼:
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)總是沒有提供任何東西。
在此先感謝 伊沃
搬到開始並沒有幫助。仍然是相同的結果。增量確實在錯誤的地方。但即使把它放在正確的位置也無濟於事。我得到的條目是好的,如果我運行調試器,並且詢問ze.Name,它會給出我的文件名;就像ze.Size爲我提供了正確的文件大小。 (我也嘗試了迭代,就像沒有運氣的c#示例) – Ivo 2010-11-02 18:59:00
@ user495089 - 是我的評論還是下面的答案?對我來說,就像你在這裏有一個簡單的邏輯錯誤 – 2010-11-02 19:02:36
您是否試過將未壓縮的數據寫入本地文件('FileStream')或'MemoryStream'而不是使用FTP? 'zf.GetInputStream()'屬性的外觀是什麼?什麼是「上傳」的界面?只是一個'Stream',或者其他一些類作爲參數3? – 2010-11-02 19:20:14