[英]DownloadFileTaskAsync C#
我正在嘗試創建一個小程序來下載給定鏈接的文件。
我遇到的問題如下...當我下載* .htm,* .txt之類的文件時沒有問題,但是當我嘗試獲取更大的文件(例如* .zip,*。bmp之類)時,我的程序僅在2kb-7kb。
我也嘗試使用localhost,因為我認為某些網站上的外部查詢可能存在一些安全限制,但這是相同的。 [我知道我現在在組織主文件中的代碼的方式離正確的地方很遠,但是就像我說的那樣,這只是一個測試]
我的代碼:
static DateTime lastUpdate;
static long lastBytes = 0;
static void Main()
{
MyTask();
Console.ReadKey();
}
async static Task MyTask()
{
var wc = new WebClient();
wc.DownloadProgressChanged += (sender, args) =>
{
Console.WriteLine("{0} - {1} % complete", ProgressChanged(args.BytesReceived), args.ProgressPercentage);
};
Task.Delay(150000).ContinueWith(ant =>
{
wc.CancelAsync();
Console.WriteLine("ABORTED!");
});
//http://windows.php.net/downloads/releases/php-5.5.3-nts-Win32-VC11-x86.zip
//await wc.DownloadFileTaskAsync("http://localhost/", "w-brand.png");
//await wc.DownloadFileTaskAsync("http://oreilly.com", "webpage.htm");
await wc.DownloadFileTaskAsync("http://windows.php.net/downloads/releases/", "php-5.5.3-nts-Win32-VC11-x86.zip");
}
static long ProgressChanged(long bytes)
{
if (lastBytes == 0)
{
lastUpdate = DateTime.Now;
lastBytes = bytes;
return 0;
}
var now = DateTime.Now;
var timeSpan = now - lastUpdate;
var bytesChange = bytes - lastBytes;
var bytesPerSecond = timeSpan.Seconds != 0 ? bytesChange / timeSpan.Seconds : 0;
lastBytes = bytes;
lastUpdate = now;
return bytesPerSecond;
}
任何幫助,將不勝感激。
您的代碼始終下載索引網頁。
DownloadFileTaskAsync的第一個參數是Web URL,第二個參數是存儲文件的本地路徑。
wc.DownloadFileTaskAsync("http://windows.php.net/downloads/releases/php-5.5.3-nts-Win32-VC11-x86.zip", @"c:\php-5.5.3-nts-Win32-VC11-x86.zip");
為我工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.