这是我从服务器下载 ZIP 文件的 C# 代码。当我下载时,我没有收到文件,但它已部分下载。
public static void Download(String strURLFileandPath, String strFileSaveFileandPath)
{
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(strURLFileandPath);
HttpWebResponse ws = (HttpWebResponse)wr.GetResponse();
Stream str = ws.GetResponseStream();
byte[] inBuf = new byte[100000];
int bytesToRead = (int)inBuf.Length;
int bytesRead = 0;
while (bytesToRead > 0)
{
int n = str.Read(inBuf, bytesRead, bytesToRead);
if (n == 0)
break;
bytesRead += n;
bytesToRead -= n;
}
try
{
FileStream fstr = new FileStream(strFileSaveFileandPath, FileMode.OpenOrCreate, FileAccess.Write);
fstr.Write(inBuf, 0, bytesRead);
str.Close();
fstr.Close();
}
catch (Exception e) {
MessageBox.Show(e.Message);
}
}
我觉得问题在这里发生
byte[] inBuf = new byte[100000];
当我增加byte[] inBuf = new byte[100000];
tobyte[] inBuf = new byte[10000000];
该文件正在完美下载。
但我的问题是,如果我下载的文件大于 50 MB(例如:200 MB)。
这种方法不好。
谁能告诉我如何解决这个问题?