我正在從FTP站點(異步)下載文件並需要更新進度欄。我已閱讀MS文檔,指出可以完成的是WebClient類的GetWebRequest()是ovverriden,因此'UsePassive'屬性設置爲'false'。我做了這個,但'DownloadProgressChanged'事件參數ProgressPercentage總是=='0'。如何從FTP顯示下載進度
有人能告訴我如何讓這個參數開始返回值嗎?
這是下載方法:
FTPClient request = new FTPClient();
request.Credentials = new NetworkCredential(user, password);
request.DownloadProgressChanged += UpdateProgress;
request.DownloadFileAsync(ftpepath,destinationpath);
這是FTPClient(我在哪裏重寫GetWebRequest()):
class FTPClient : WebClient
{
protected override WebRequest GetWebRequest(System.Uri address)
{
FtpWebRequest req = (FtpWebRequest) base.GetWebRequest(address);
req.UsePassive = false;
return req;
}
}
而且我的回調,如果有幫助:
void UpdateProgress(object sender, DownloadProgressChangedEventArgs e)
{
dwnProgress.Value = e.ProgressPercentage;
dwnprcnt.Text = PercentProgress.ToString() + "%";
}
表明你要調用的函數在一個單獨的線程,因此不會阻止該應用程序的UI是否它或網頁的進展。 – 2010-02-24 18:55:14