示例#1
0
        private void DownloadAsync(DownloadInfo newInfo)
        {
            _Client = null;

            DownloadInfo downloadInfo = newInfo;

            //string exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            string exePath   = System.Windows.Forms.Application.StartupPath;
            string localPath = exePath + "\\" + downloadInfo._filePath.Replace('/', '\\');

            if (File.Exists(localPath) == true)
            {
                if (downloadInfo._completeHandler != null)
                {
                    downloadInfo._completeHandler(localPath);
                }

                return;
            }

            string[] folderNames = localPath.Split('\\');
            string   folderPath  = string.Empty;

            fileName = folderNames[folderNames.Length - 1];
            for (int i = 0; i < folderNames.Length - 1; i++)
            {
                folderPath += folderNames[i];

                if (Directory.Exists(folderPath) == false)
                {
                    Directory.CreateDirectory(folderPath);
                }

                folderPath += '\\';
            }

            _Client       = new WebClient();
            _Client.Proxy = null;

            _Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
            _Client.DownloadFileCompleted   += DownloadFileCompleted(localPath, downloadInfo);

            var url = Login._ServerPath + downloadInfo._filePath;

            _Client.DownloadFileAsync(new Uri(url), localPath);

            //_ProgressBarWindow.Show();
            //_ProgressBarWindow.Left = downloadInfo._window.Left + downloadInfo._window.Width / 2;
            //_ProgressBarWindow.Top = downloadInfo._window.Top + downloadInfo._window.Height / 2;

            return;

            //_ProgressBarWindow.Hide();
        }
示例#2
0
        public bool DownloadFile(string filePath, DownloadCompleteHandler completeHandler, Control control)
        {
            DownloadInfo newInfo = new DownloadInfo();

            newInfo._filePath        = filePath;
            newInfo._completeHandler = completeHandler;
            newInfo._window          = Window.GetWindow(control);

            //newInfo._window.Closed += new EventHandler(_window_Closed);
            DownloadAsync(newInfo);

            return(true);
        }
示例#3
0
        private AsyncCompletedEventHandler DownloadFileCompleted(string strFileName, DownloadInfo downloadInfo)
        {
            Action <object, AsyncCompletedEventArgs> action = (sender, e) =>
            {
                var _filename = strFileName;

                if (e.Error != null)
                {
                    //throw e.Error;
                }

                if (downloadInfo._completeHandler != null)
                {
                    downloadInfo._completeHandler(strFileName);
                }
            };

            return(new AsyncCompletedEventHandler(action));
        }