使用VB代码下载文本文件时内容异常变更的问题求助
问题根源
My.Computer.Network.DownloadFile并非纯二进制下载方式,它会默认按系统编码处理文本内容,导致文件的编码或字节流被修改,和浏览器直接下载的原始文件不一致。
VB 解决代码
用WebClient直接处理字节流,完全保留原始文件内容:
' 简洁版 Using client As New System.Net.WebClient() client.DownloadFile(remoteHashAddress, "c:\TbNetHashRemote.txt") End Using ' 更严谨的字节流保存,确保无编码转换 Dim client As New System.Net.WebClient() Dim rawBytes As Byte() = client.DownloadData(remoteHashAddress) System.IO.File.WriteAllBytes("c:\TbNetHashRemote.txt", rawBytes)
C# 解决代码
同样用二进制方式下载,避免编码干扰:
// WebClient 版本 using (var client = new System.Net.WebClient()) { client.DownloadFile(remoteHashAddress, @"c:\TbNetHashRemote.txt"); } // HttpClient 异步版本 using (var client = new System.Net.Http.HttpClient()) { var fileBytes = await client.GetByteArrayAsync(remoteHashAddress); await System.IO.File.WriteAllBytesAsync(@"c:\TbNetHashRemote.txt", fileBytes); }
验证方式
下载完成后,计算两个文件的MD5哈希值,只要哈希值一致,就说明内容完全相同,没有被修改。
内容的提问来源于stack exchange,提问作者Ashkan
相关产品推荐
相关产品推荐

