1
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("request_uri_string");
FileStream fileStream = new FileStream("path_to_my_file", FileMode.Open, FileAccess.Read); 
Stream requestStream = request.GetRequestStream(); 
byte[] buffer = new Byte[checked((uint)Math.Min(4096, (int)fileStream.Length))];   
int bytesRead = 1;
while (bytesRead != 0)
{
    bytesRead = fileStream.Read(buffer, 0, buffer.Length);
    if (bytesRead > 0)
    {
        requestStream.Write(buffer, 0, bytesRead);
    }
} 
request.Close(); 
fileStream .Close(); 

目前我正在使用上面的代码。

还有比这更好的方法(意味着 FAST)吗?

4

2 回答 2

5

不确定这是否更快,但更具可读性:

using (var webClient = new WebClient())
{
    webClient.DownloadFile(remoteFileUrl, localFileName);
}

编辑:

既然WebClientIDisposable,它应该被妥善处理(我补充说using)。

MSDN 说:

此方法使用RETR命令下载 FTP 资源。对于 HTTP 资源,使用该GET方法。

于 2013-02-21T14:09:07.990 回答
0

这是 WebClient 的所有方法:http: //msdn.microsoft.com/en-us/library/ekfaaeay.aspx

您可以确定是要执行异步还是常规。对于 URI 和常规字符串路径,DownloadFile 有一些公开的方法。

于 2013-02-21T14:14:55.490 回答