使用SharpZipLib解压缩XML文件会在最后添加额外的行(仅在有时)

时间:2014-11-12 18:59:35

标签: xml vb.net sharpziplib

这是我第一次尝试发帖,所以如果我遗漏一些重要细节,我很抱歉。

我工作的公司有一个程序可以将压缩文件下载到计算机,然后将其解压缩到zip文件所在的文件夹中.zip中有几种不同类型的文件(exe,dll,xml)并且所有这些都解压缩,但有时(并非总是)xml文件有附加行

在xml文件的最后,有时会在文件的前面重复行,并且它似乎运行到文件的末尾。对不起,这有点难以解释,这是最新的例子:

该文件的最后一部分是结束元素“< / root>”然后立即有一个额外的“oot>”

有时重复行的数量较大,但似乎总是从文件的结尾到文件末尾的某个地方。

以下是解压缩文件的代码片段:

    MyFileStream = New FileStream(ExtractDir & "\" & _
      MyZipEntry.Name, FileMode.OpenOrCreate, FileAccess.Write)
    Dim count As Integer
    Dim buffer(4096) As Byte
    count = MyZipInputStream.Read(buffer, 0, 4096)
    While count > 0
      MyFileStream.Write(buffer, 0, count)
      count = MyZipInputStream.Read(buffer, 0, 4096)
    End While
    MyFileStream.Close()
  End If

注意: 使用普通的右键单击拉链文件 - >发送至 - >压缩文件夹

使用SharpZipLib解压缩文件

这可能发生在所有文本文件中,我不确定并且无法测试,只能在xml上看到

我不是在寻找一种更好的解压缩文件的方法(这不是我的代码,我不想改变它的方式,除非没有别的办法),我只是在寻找一个关于如何添加额外行的说明。正如我上面提到的 - 这个问题只在某些时候发生,其他时候xml文件正确发布。可以将同一文件下载到不同的计算机,然后以不同的方式出现。

我感谢任何答案,帮助我理解这个

1 个答案:

答案 0 :(得分:0)

解压缩xml时,请确保创建新的空文件。如果您修改已存在的文件,如果使用OpenOrCreate新文件较小,则会出现此问题,您最终会得到旧文件的一些剩余部分。

另一种选择是删除文件。您可以在创建(逐个)之前删除它们,也可以在调用程序之前删除整个文件夹。