我正在创建一个下载文件的程序,但我只想下载文件的前半部分,我想知道是否有任何方法可以做到这一点,最好是在C#中。
下载管理器仅下载文件的前半部分。我还需要代码来继续下半部分的下载(如果可能的话)。
答案 0 :(得分:0)
您可以使用webrequest和webresponse,并使用ContentLength标头字段检查长度
private void DownloadFile( string someUrl)
{
byte[] result;
byte[] buffer = new byte[4096];
WebRequest wr = WebRequest.Create(someUrl);
using (WebResponse response = wr.GetResponse())
{
long contentLentgth = response.ContentLength;
using (Stream responseStream = response.GetResponseStream())
{
using (MemoryStream ms = new MemoryStream())
{
int count = 0;
long totalBytes = 0;
do
{
count = responseStream.Read(buffer, 0, buffer.Length);
totalBytes = totalBytes + count;
ms.Write(buffer, 0, count);
using (FileStream file = new FileStream("file.bin", FileMode.Create, System.IO.FileAccess.Write))
{
byte[] bytes = new byte[ms.Length];
ms.Read(bytes, 0, (int)ms.Length);
file.Write(bytes, 0, bytes.Length);
ms.Close();
}
if (totalBytes>contentLentgth/2)
{
break;
}
} while (count != 0);
}
}
}
}
答案 1 :(得分:0)