Incomplete/Corrupted 个下载的文件
Incomplete/Corrupted downloaded files
我制作了这个小工具,它通过图像链接列表并将它们下载到硬盘驱动器,但是,有些图片不完整 (Check this picture),他们甚至没有提出例外。下面的代码显示了我在我的工具中使用的下载方法。
private void Download(string url)
{
try
{
HttpWebRequest Request = WebRequest.Create(url) as HttpWebRequest;
Request.Method = WebRequestMethods.Http.Get;
Request.Timeout = 60 * 1000;
FileInfo ImageFile = new FileInfo(Path.Combine(BaseDirectory, Path.GetFileName(url)));
if (!ImageFile.Exists)
{
using (HttpWebResponse Response = Request.GetResponse() as HttpWebResponse)
{
if (Response.StatusCode.Equals(HttpStatusCode.OK))
{
using (FileStream FStream = new FileStream(ImageFile.FullName, FileMode.Create, FileAccess.Write, FileShare.None, 4096))
Response.GetResponseStream().CopyTo(FStream, 4096);
}
}
}
}
catch (Exception e)
{
Console.WriteLine("Error Downloading: {0}\r\nMessage: {1}", url, e.Message);
}
}
不知道是服务端的问题还是我的代码有问题,大家怎么看?
您是否尝试过在读取数据后调用 Flush()
?流的最后一部分似乎没有被写出。
我制作了这个小工具,它通过图像链接列表并将它们下载到硬盘驱动器,但是,有些图片不完整 (Check this picture),他们甚至没有提出例外。下面的代码显示了我在我的工具中使用的下载方法。
private void Download(string url)
{
try
{
HttpWebRequest Request = WebRequest.Create(url) as HttpWebRequest;
Request.Method = WebRequestMethods.Http.Get;
Request.Timeout = 60 * 1000;
FileInfo ImageFile = new FileInfo(Path.Combine(BaseDirectory, Path.GetFileName(url)));
if (!ImageFile.Exists)
{
using (HttpWebResponse Response = Request.GetResponse() as HttpWebResponse)
{
if (Response.StatusCode.Equals(HttpStatusCode.OK))
{
using (FileStream FStream = new FileStream(ImageFile.FullName, FileMode.Create, FileAccess.Write, FileShare.None, 4096))
Response.GetResponseStream().CopyTo(FStream, 4096);
}
}
}
}
catch (Exception e)
{
Console.WriteLine("Error Downloading: {0}\r\nMessage: {1}", url, e.Message);
}
}
不知道是服务端的问题还是我的代码有问题,大家怎么看?
您是否尝试过在读取数据后调用 Flush()
?流的最后一部分似乎没有被写出。