远程文件为:http://192.168.1.102/aa.dat本地目录为D:\通过一个方法,把远程的aa.dat文件取到本地D:下。
我的方法如下:
public static void DownloadToFile(string url,string saveName)
{
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream dataStream = response.GetResponseStream())
{
using (FileStream fs = new FileStream(saveName, FileMode.Create, FileAccess.Write))
{
byte[] buffer = new byte[1024];
while (true)
{
int sizeRead = dataStream.Read(buffer, 0, buffer.Length);
if (sizeRead > 0)
fs.Write(buffer, 0, sizeRead);
else
break;
}
fs.Flush();
}
}
}
存在的问题是,如果远程服务器不能识别要下载的文件,例如aa.pxs,则该方法可用。若可以识别下载的文件如aa.dat,则服务器IE默认机制是打开该文件,而不是保存文件,则调用该方法会报错。请问该如何改?或者请教别的方法下载。多谢。
我的方法如下:
public static void DownloadToFile(string url,string saveName)
{
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream dataStream = response.GetResponseStream())
{
using (FileStream fs = new FileStream(saveName, FileMode.Create, FileAccess.Write))
{
byte[] buffer = new byte[1024];
while (true)
{
int sizeRead = dataStream.Read(buffer, 0, buffer.Length);
if (sizeRead > 0)
fs.Write(buffer, 0, sizeRead);
else
break;
}
fs.Flush();
}
}
}
存在的问题是,如果远程服务器不能识别要下载的文件,例如aa.pxs,则该方法可用。若可以识别下载的文件如aa.dat,则服务器IE默认机制是打开该文件,而不是保存文件,则调用该方法会报错。请问该如何改?或者请教别的方法下载。多谢。
obj.DownloadFile(Url,Path);