Esempio n. 1
0
 /// <summary>
 /// 创建一个 下载节点;
 /// </summary>
 /// <param name="exData">追加内容,对应类型解;</param>
 public DownLoadPack(string strUrl, DownLoadAssetInfo downLoadInfo, DownLoadAssetType assetType, DownLoadCallBack funCallBack, object exData, bool debugError)
 {
     m_DownLoadAssetInfo = downLoadInfo;
     m_AssetType         = assetType;
     m_CallBack          = funCallBack;
     m_exData            = exData;
     m_strUrl            = strUrl;
     m_AssetRefer        = 1;
     m_DebugError        = debugError;
 }
Esempio n. 2
0
 /// <summary>
 /// 下载文件
 /// </summary>
 /// <param name="url">下载地址</param>
 /// <param name="localPath">本地地址</param>
 /// <param name="complite">完成回调</param>
 public void downLoadFile(String url, String localPath, DownLoadCallBack complite)
 {
     new Thread(new ThreadStart(() =>
     {
         try
         {
             WebClient client = new WebClient();
             client.DownloadFile(url, localPath);
             if (File.Exists(localPath))
             {
                 complite(true);
             }
             else
             {
                 complite(false);
             }
         }
         catch
         {
             complite(false);
         }
     })).Start();
 }
Esempio n. 3
0
        /// <summary>
        /// 下载文件 进度显示
        /// </summary>
        /// <param name="URL">下载地址</param>
        /// <param name="filename">下载路径</param>
        /// <param name="progress">下载进度</param>
        /// <param name="callBack">完成回调</param>
        public void DownloadFile(string URL, string filename, DownloadProgress progress, DownLoadCallBack callBack)
        {
            float percent = 0;

            Console.WriteLine(URL);
            try
            {
                lock (dowloadLock)
                {
                    if (downloadUrls.Contains(URL))
                    {
                        return;
                    }
                    downloadUrls.Add(URL);
                }
                System.Net.HttpWebRequest  Myrq      = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
                System.Net.HttpWebResponse myrp      = (System.Net.HttpWebResponse)Myrq.GetResponse();
                long             totalBytes          = myrp.ContentLength;
                System.IO.Stream st                  = myrp.GetResponseStream();
                System.IO.Stream so                  = new System.IO.FileStream(filename, System.IO.FileMode.Create);
                long             totalDownloadedByte = 0;
                byte[]           by                  = new byte[1024];
                int osize = st.Read(by, 0, (int)by.Length);
                var date  = DateTime.Now;
                GC.AddMemoryPressure(totalBytes);
                while (osize > 0)
                {
                    totalDownloadedByte = osize + totalDownloadedByte;
                    System.Windows.Forms.Application.DoEvents();
                    so.Write(by, 0, osize);
                    osize = st.Read(by, 0, (int)by.Length);
                    var sp = DateTime.Now - date;
                    date = DateTime.Now;
                    if (sp.Seconds > 1)
                    {
                        percent = (float)totalDownloadedByte / (float)totalBytes * 100;
                        if (progress != null)
                        {
                            Console.WriteLine(percent + "=================================" + filename);
                            progress(percent);
                        }
                    }
                }
                so.Close();
                st.Close();
                if (callBack != null)
                {
                    callBack(true);
                }
                lock (dowloadLock)
                {
                    downloadUrls.Remove(URL);
                }
            }
            catch
            {
                callBack(false);
                lock (dowloadLock)
                {
                    downloadUrls.Remove(URL);
                }
            }
        }