使用System.IO.File.WriteAllText保存文件导致Zip归档损坏的问题求助
System.IO.File.WriteAllText保存文件导致Zip归档损坏的问题求助
我最近在做一个从网站自动批量下载文件的小工具,目前已经能成功列出目标文件并发起下载请求,但遇到了个头疼的问题——下载后保存的Zip文件总是损坏,虽然文件大小看起来和原文件完全一致,但就是无法正常解压。
先给大家看看我定义的相关类:
用来存储下载结果的DownloadedData类:
Public Class DownloadedData Public Property Data As Byte() Public Property Url As Uri End Class
还有负责下载逻辑的HelperWebClient类,核心的异步下载方法片段如下:
Public Class HelperWebClient Public Async Function DownloadDataAsync(ByVal nomeficheiro As String, ByVal bolachas As String, urls As List(Of String)) As Task(Of List(Of DownloadedData)) Dim allTasks As List(Of Task) = New List(Of Task) Dim downloadedDataList As List(Of DownloadedData) = New List(Of DownloadedData) For i As Integer = 0 To urls.Count - 1 'set value Dim url As Uri = New Uri(urls(i)) Dim url2 As String = urls(i) Debug.WriteLine(String.Format("[{0}]: Adding {1}", i, url)) '... 后续的下载任务逻辑代码省略
我怀疑问题可能出在文件保存的步骤上,比如是不是误用了System.IO.File.WriteAllText来保存二进制的Zip数据?毕竟文本写入方式会处理编码,很可能破坏二进制文件的原始结构。有没有有经验的朋友能帮我排查下问题,或者给点修复的方向呀?
备注:内容来源于stack exchange,提问作者Tiago
相关产品推荐
相关产品推荐

