我的代码在这里可以很好地获取内容长度,并告诉我文件有多大,然后它在if语句上工作。由于某种原因,在if语句之后,如果MB小于5,它将不会下载文件,它只是停止程序。就像在HTTP请求之后,它就会停止。所以我不知道这是我的代码错误,还是别的,如果这是一个愚蠢的问题,我很抱歉。
byte[] test;
int size;
long MB = 0;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Path);
req.Method = "HEAD";
HttpWebResponse resp = (HttpWebResponse)(req.GetResponse());
long len = resp.ContentLength;
MB = len / 1048576;
if (MB > 5)
{
Console.WriteLine("File to big!");
}
else
{
var webClient = new WebClient();
MemoryStream ms = new MemoryStream();
byte[] imageBytes = webClient.DownloadData(Path);
test = imageBytes;
size = test.Length;
}
答案 0 :(得分:1)
只是猜测,但在尝试打开另一个连接之前调用resp.Close();
会有帮助吗?
答案 1 :(得分:0)
在继续Dispose()
之前,在HttpWebResponse
上致电WebClient
。
它应该有用。