示例#1
0
        private void downloadFiles_button_Click(object sender, EventArgs e)
        {
            maximumDownloads = (int)maximumDownloads_numericUpDown.Value;
            checkedFiles     = new List <CloudFile>();
            checkedFilesSize = 0;
            GetCheckedFiles((((SortedTreeModel)newFilesTreeViewAdv.Model).InnerModel as TreeModel).Nodes[0]);

            DialogResult dialogResult = MessageBox.Show($"Got links for {checkedFiles.Count} files [{(int)(checkedFilesSize / 1000000)} MB]  Continue?", "Result", MessageBoxButtons.YesNo);

            if (dialogResult == DialogResult.No)
            {
                return;
            }

            if (folderNewFiles_checkBox.Checked)
            {
                Directory.CreateDirectory(MainForm.syncFolderPath + @"\New Files " + DateTime.Now.ToShortDateString());
            }

            ProgressBar[] usedProgressBars = new ProgressBar[maximumDownloads];
            Label[]       usedLabels       = new Label[maximumDownloads + 1];
            for (int i = 0; i < maximumDownloads; i++)
            {
                usedProgressBars[i] = progressBars[i];
                usedLabels[i]       = progressLabels[i];
            }
            usedLabels[maximumDownloads] = progressLabels[progressLabels.Count - 1];

            commonDownload = new CommonDownload(checkedFiles, usedProgressBars, usedLabels, cloudServiceType, overwriteMode_comboBox.SelectedIndex, NetworkCredential, folderNewFiles_checkBox.Checked);
            commonDownload.Start();

            stopDownload_button.Enabled = true;
            stopDownload_button.Visible = true;
        }
        public CommonFileDownload(CommonDownload commonDownload, CloudFile fileInfo, string savePath, NetworkCredential networkCredential)
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
            SavePath = savePath.Replace("%27", "'");
            FileInfo = fileInfo;
            var progressHandler = new Progress <double>(value =>
            {
                ProgressPercent = value;
            });

            progressHandler.ProgressChanged += new EventHandler <double>(ProgreessChanged);
            Progress           = progressHandler as IProgress <double>;
            ParentDownload     = commonDownload;
            _networkCredential = networkCredential;
        }