1
我从http://download.geonames.org/export/dump/下载3(2 zip 1 txt文件)文件使用WebClient和一个大小为9 Mb的zip文件,当我下载它的大小为215 MB并损坏时。使用WebRequest类和FileStream类,但再有同样的结果..损坏的zip文件,同时通过URL下载
我对替代Web客户端下载方法:
private void MyDownloadFile(Uri url, string outputFilePath)
{
const int BUFFER_SIZE = 16 * 1024;
using (var outputFileStream = File.Create(outputFilePath, BUFFER_SIZE))
{
var req = WebRequest.Create(url);
using (var response = req.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
var buffer = new byte[BUFFER_SIZE];
int bytesRead;
do
{
bytesRead = responseStream.Read(buffer, 0, BUFFER_SIZE);
outputFileStream.Write(buffer, 0, bytesRead);
} while (bytesRead > 0);
}
}
}
}
private void DownloadFile(String Url, String ResultFileName)
{
HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(Url);
HttpWebResponse ws = (HttpWebResponse)wr.GetResponse();
Stream str = ws.GetResponseStream();
byte[] inBuf = new byte[100000];
int bytesReadTotal = 0;
FileStream fstr = new FileStream(ResultFileName, FileMode.Create, FileAccess.Write);
while (true)
{
int n = str.Read(inBuf, 0, 100000);
if ((n == 0) || (n == -1))
{
break;
}
fstr.Write(inBuf, 0, n);
bytesReadTotal += n;
}
str.Close();
fstr.Close();
}
文件URL而破坏,同时下载:http://download.geonames.org/export/dump/allCountries.zip
任何人,有同样的问题,也可以写正确的方法pload这个zip文件?或者,也许我做错了什么?
来看,'allCountries.zip' *应*约208M,不是9M。你确定你正在下载正确的文件吗? –