Esempio n. 1
0
        /// <summary>
        /// 分割文件
        /// </summary>
        /// <param name="remainingSize">剩余的大小(除完后的余数)</param>
        /// <returns>每个线程应该下载的大小</returns>
        private int SplitSize(string url, out int remainingSize)
        {
            long fileSize = NetWorkHelp.GetUrlFileSize(url);

            //每一个线程应当下载的大小
            int eachThreadShouldDownloadSize = (int)fileSize / this.MaxDownloadThread; //文件大小/最大下载线程数

            remainingSize = (int)fileSize % this.MaxDownloadThread;                    //取余数
            return(eachThreadShouldDownloadSize);
        }
Esempio n. 2
0
 /// <summary>
 /// 检查DownloadTask是否正确(不包括TaskID)
 /// </summary>
 /// <returns></returns>
 public static bool Check(DownloadTask downloadTask)
 {
     if (NetWorkHelp.CanConnection(downloadTask.Url) == true &&
         PathHelp.IsRightForRegex(downloadTask.Path))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// 创建一个DownloadTask(不包括ID)
 /// </summary>
 /// <param name="url"></param>
 /// <param name="path"></param>
 public static DownloadTask Create(string url, string path, MultiDownload target)
 {
     if (NetWorkHelp.CanConnection(url))    //链接是否可以连接
     {                                      //是
         if (path[path.Length - 1] != '\\') //为了修复Path.Combine方法的缺陷,防止路径合并错误
         {
             path = path + '\\';
         }
         //获取下载路径
         string       downloadPath = System.IO.Path.Combine(path + System.IO.Path.GetFileName(HttpUtility.UrlDecode(url))); //合并路径
         DownloadTask downloadTask = new DownloadTask(target);                                                              //新建下载任务
         downloadTask.Path  = downloadPath;                                                                                 //将路径赋值
         downloadTask.Url   = url;                                                                                          //将链接赋值
         downloadTask.State = DownloadTaskState.Waiting;
         return(downloadTask);
     }
     else
     {                                                //否
         throw new UrlCanNotConnectionException(url); //抛出连接无法连接错误
     }
 }