将DotNetZip ZipEntry加载到RichTextBox中而不提取它

时间:2016-01-30 14:48:20

标签: vb.net richtextbox dotnetzip

我正在编写一个使用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

对于代码块格式化它的方式感到抱歉,哈哈。任何帮助,将不胜感激!谢谢!

杰森

0 个答案:

没有答案