在C# winform编程中,有一个进度条的控件叫 ProgressBar,可以通过代码设置它的属性,然后我们就可以实现下载的时候显示进度条。
对于文件夹的下载,由于文件夹里面可能存在文件和文件夹,而C#仅支持对文件的下载,所以需要通过递归搜索,遍历文件夹的方式进行下载。
public void Download(string savePath, string sourcePath)
{
if (!File.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
string[] dirs = Directory.GetDirectories(sourcePath);
string[] files = Directory.Files(sourcePath);
if (files.Length > 0)
{
for (int i = 0; i < files.Length; i++)
{
WebClient client = new WebClient();
// 绑定事件
client.DownloadProgressChanged += client_DownloadProcessChanged;
// 异步下载
client,DOwnloadFileAsync(new Uri(sourcePath + "\\" + Path.GetFileName(files[i]), savePath + "\\" + Path.GetFileName(fles[i])));
Application.DoEvents()