Пример #1
0
 public void CheckDownLoadList()
 {
     LoggerHelper.Debug("核对下载列表", true, 0);
     if (this.tasks.Count != 0)
     {
         int num = 0;
         foreach (DownloadTask task in this.tasks)
         {
             LoggerHelper.Debug("核对任务:" + task.FileName, true, 0);
             if (!(!task.bFineshed || task.bDownloadAgain))
             {
                 LoggerHelper.Debug("已经完成不用从下:" + task.FileName, true, 0);
                 num++;
             }
             else
             {
                 string directoryName = Path.GetDirectoryName(task.FileName);
                 if (!((directoryName == null) || Directory.Exists(directoryName)))
                 {
                     Directory.CreateDirectory(directoryName);
                     LoggerHelper.Debug("下载目录不存在,创建目录:" + directoryName, true, 0);
                 }
                 if (!BreakPoint)
                 {
                     LoggerHelper.Debug("新的下载或从新下载:" + task.FileName, true, 0);
                     this._webClient.DownloadFileAsync(new Uri(task.Url), task.FileName, task.Url);
                 }
                 else
                 {
                     LoggerHelper.Debug("断点下载:" + task.FileName, true, 0);
                     ThreadDownloadBreakPoint point = new ThreadDownloadBreakPoint(this, task);
                     new Thread(new ThreadStart(point.Download)).Start();
                     LoggerHelper.Debug("开始断点下载:" + task.FileName, true, 0);
                 }
                 break;
             }
         }
         if (num > (this.tasks.Count - 1))
         {
             LoggerHelper.Debug("下载的数据包数量已经达到要求的,删除所有任务和全部任务完成的回调", true, 0);
             this.tasks.Clear();
             this.tasks = null;
             if (this.AllDownloadFinished != null)
             {
                 this.AllDownloadFinished();
                 this.AllDownloadFinished = null;
             }
         }
     }
 }
Пример #2
0
    /// <summary>
    /// 检测下载列表
    /// </summary>
    public void CheckDownloadList()
    {
        if (Tasks.Count == 0)
        {
            //下载列表为空
            return;
        }
        //已经下载完成的数目
        int finishedCount = 0;

        foreach (var task in Tasks)
        {
            if (task.bFineshed && !task.bDownloadAgain)
            {
                finishedCount++;
            }
            else
            {
                //是否文件存放的目录已经存在,如果不存在就创建
                string dir = Path.GetDirectoryName(task.FileName);
                if (!string.IsNullOrEmpty(dir) && !Directory.Exists(task.FileName))
                {
                    Directory.CreateDirectory(dir);
                }
                //开始断点下载
                ThreadDownloadBreakPoint bpDownload = new ThreadDownloadBreakPoint(this, task);
                Thread t = new Thread(bpDownload.Download);
                t.Start();
            }
            break;
        }
        if (finishedCount > m_listTasks.Count - 1)
        {
            m_listTasks.Clear();
            m_listTasks = null;
            if (AllDownloadFinished != null)
            {
                AllDownloadFinished();
                AllDownloadFinished = null;
            }
        }
    }
Пример #3
0
    //开始、继续、从新下载
    public void CheckDownLoadList()
    {
        LoggerHelper.Debug("核对下载列表");
        if (tasks.Count == 0)
        {
            return;
        }
        var finishedCount = 0;//已经完成的数目

        foreach (var task in tasks)
        {
            LoggerHelper.Debug("核对任务:" + task.FileName);
            if (task.bFineshed && !task.bDownloadAgain)
            {
                LoggerHelper.Debug("已经完成不用从下:" + task.FileName);
                finishedCount++;
            }
            else
            {
                //判断下载文件的文件夹是否存在
                var dirName = Path.GetDirectoryName(task.FileName);
                if (dirName != null && !Directory.Exists(dirName))
                {
                    Directory.CreateDirectory(dirName);
                    LoggerHelper.Debug("下载目录不存在,创建目录:" + dirName);
                }
                //重新下载的,或者新的下载
                if (!BreakPoint)
                {
                    LoggerHelper.Debug("新的下载或从新下载:" + task.FileName);
                    _webClient.DownloadFileAsync(new Uri(task.Url), task.FileName, task.Url);
                }
                else
                {
                    LoggerHelper.Debug("断点下载:" + task.FileName);
                    //Action action = () => DownloadFileBreakPoint(task.Url, task.FileName);
                    //var t = new Thread(action);
                    var download = new ThreadDownloadBreakPoint(this, task);
                    var t        = new Thread(download.Download);
                    t.Start();
                    LoggerHelper.Debug("开始断点下载:" + task.FileName);
                }
                break;
            }
        }
        //Action actionFinish = () =>
        //{
        //如果全部完成,修改原来等于判断,不然最后一个或者只有一个下载任务时不会执行自己的finish
        if (finishedCount > tasks.Count - 1)
        {
            LoggerHelper.Debug("下载的数据包数量已经达到要求的,删除所有任务和全部任务完成的回调");
            tasks.Clear();
            tasks = null;
            if (AllDownloadFinished != null)
            {
                AllDownloadFinished();
                AllDownloadFinished = null;
            }
        }
        //};
        //actionFinish.Invoke();
    }
Пример #4
0
 //开始、继续、从新下载
 public void CheckDownLoadList()
 {
     LoggerHelper.Debug("核对下载列表");
     if (tasks.Count == 0) return;
     var finishedCount = 0;//已经完成的数目
     foreach (var task in tasks)
     {
         LoggerHelper.Debug("核对任务:" + task.FileName);
         if (task.bFineshed && !task.bDownloadAgain)
         {
             LoggerHelper.Debug("已经完成不用从下:" + task.FileName);
             finishedCount++;
         }
         else
         {
             //判断下载文件的文件夹是否存在
             var dirName = Path.GetDirectoryName(task.FileName);
             if (dirName != null && !Directory.Exists(dirName))
             {
                 Directory.CreateDirectory(dirName);
                 LoggerHelper.Debug("下载目录不存在,创建目录:" + dirName);
             }
             //重新下载的,或者新的下载
             if (!BreakPoint)
             {
                 LoggerHelper.Debug("新的下载或从新下载:" + task.FileName);
                 _webClient.DownloadFileAsync(new Uri(task.Url), task.FileName, task.Url);
             }
             else
             {
                 LoggerHelper.Debug("断点下载:" + task.FileName);
                 //Action action = () => DownloadFileBreakPoint(task.Url, task.FileName);
                 //var t = new Thread(action);
                 var download = new ThreadDownloadBreakPoint(this, task);
                 var t = new Thread(download.Download);
                 t.Start();
                 LoggerHelper.Debug("开始断点下载:" + task.FileName);
             }
             break;
         }
     }
     //Action actionFinish = () =>
     //{
     //如果全部完成,修改原来等于判断,不然最后一个或者只有一个下载任务时不会执行自己的finish
     if (finishedCount > tasks.Count - 1)
     {
         LoggerHelper.Debug("下载的数据包数量已经达到要求的,删除所有任务和全部任务完成的回调");
         tasks.Clear();
         tasks = null;
         if (AllDownloadFinished != null)
         {
             AllDownloadFinished();
             AllDownloadFinished = null;
         }
     }
     //};
     //actionFinish.Invoke();
 }