我正在编写一个使用DotNetZip的应用程序,使用MemoryStream将文件(其中一些包含图像)直接从RichTextBox写入带有密码的zipfile。那部分我没有遇到任何麻烦。它是反转过程并将压缩文件加载到RichTextBox中以进行进一步编辑的部分,它给我带来了问题。我的应用程序使用带有ListView控件的自定义对话框列出zip文件的内容。我已经尝试了以下代码,但每当我运行它时,它会导致应用程序冻结,我必须从Visual Studio中关闭它。这是代码。关于如何修复它的任何建议?:
将文件解压缩到内存中:
Private Function Unzip() As MemoryStream
Dim FileToOpen As String = txtFile.Text
Dim ms As New MemoryStream
Using zip As ZipFile = ZipFile.Read(ZipPath)
zip(FileToOpen).ExtractWithPassword(fEncPass)
End Using
ms.Seek(0, SeekOrigin.Begin)
Return ms
End Function
加载它:
Dim frmNewForm As New frmDocument
With frmNewForm
.Text = txtFile.Text
.MdiParent = frmMain
If txtFile.Text.EndsWith(".pjf") Or txtFile.Text.EndsWith(".rtf") Or txtFile.Text.EndsWith(".doc") Then
.rtfDocument.LoadFile(Unzip, RichTextBoxStreamType.RichText)
Else
.rtfDocument.LoadFile(Unzip, RichTextBoxStreamType.PlainText)
End If
.Show()
End With
对于代码块格式化它的方式感到抱歉,哈哈。任何帮助,将不胜感激!谢谢!
杰森