private void Download(string path, ListViewItem item) { using (client = new WebClient()) { client.Proxy = null; client.DownloadProgressChanged += Client_DownloadProgressChanged; client.DownloadFileAsync(Uri, path + FileName, $@"{path}{FileName}"); } Database.FilesDataRow row = DatabaseManager.Database.FilesData.NewFilesDataRow(); row.Url = Url; row.FileName = FileName; row.FileSize = item.SubItems[2].Text; row.DateTime = DateTime.Now; row.Path = $@"{path}{FileName}"; DatabaseManager.Database.FilesData.AddFilesDataRow(row); DatabaseManager.Database.AcceptChanges(); DatabaseManager.Database.WriteXml(string.Format("{0}/data.dat", Application.StartupPath)); ListViewItem item1 = new ListViewItem(row.Id.ToString()); item1.SubItems.Add(row.Url); item1.SubItems.Add(row.FileName); item1.SubItems.Add(row.FileSize); item1.SubItems.Add(row.DateTime.ToLongDateString()); item1.SubItems.Add(row.Path); _mainForm.listView1.Items.Add(item1); }
private void Client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) { Database.FilesDataRow row = DatabaseManager.Database.FilesData.NewFilesDataRow(); row.Url = Url; row.FileName = FileName; row.FileSize = (string.Format("{0:0.##} KB", FileSize / 1024)); row.DateTime = DateTime.Now; row.Path = txtPath.Text; DatabaseManager.Database.FilesData.AddFilesDataRow(row); DatabaseManager.Database.AcceptChanges(); DatabaseManager.Database.WriteXml(string.Format("{0}/data.dat", Application.StartupPath)); ListViewItem item = new ListViewItem(row.Id.ToString()); item.SubItems.Add(row.Url); item.SubItems.Add(row.FileName); item.SubItems.Add(row.FileSize); item.SubItems.Add(row.DateTime.ToLongDateString()); item.SubItems.Add(row.Path); _mainForm.listView1.Items.Add(item); this.Close(); }
private async void button2_Click(object sender, EventArgs e) { var errorList = ""; button3.Enabled = false; if (listView1.CheckedItems.Count == 0) { errorList += "Check files to download\n"; } if (textBox4.Text == "") { errorList += "Select download folder\n"; } if (errorList != "") { MessageBox.Show(errorList); button3.Enabled = true; return; } button3.Enabled = false; try { progressBar2.Minimum = 0; progressBar2.Maximum = listView1.CheckedItems.Count; foreach (ListViewItem item in listView1.CheckedItems) { if (item.SubItems[2].Text == "true") { if (MessageBox.Show($"The file '{item.Text}' is already exists.\nDo you want to rewrite it?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string directory = item.Text.Trim(); await ftp.DownloadFile(textBox4.Text, serverDir, directory); progressBar2.Value++; Database.FilesDataRow row = DatabaseManager.Database.FilesData.NewFilesDataRow(); row.Url = textBox1.Text; row.FileName = item.Text; row.FileSize = item.SubItems[3].Text; row.DateTime = DateTime.Now; row.Path = textBox4.Text + item.Text; DatabaseManager.Database.FilesData.AddFilesDataRow(row); DatabaseManager.Database.AcceptChanges(); DatabaseManager.Database.WriteXml(string.Format("{0}/data.dat", Application.StartupPath)); ListViewItem item1 = new ListViewItem(row.Id.ToString()); item1.SubItems.Add(row.Url); item1.SubItems.Add(row.FileName); item1.SubItems.Add(row.FileSize); item1.SubItems.Add(row.DateTime.ToLongDateString()); item1.SubItems.Add(row.Path); _mainForm.listView1.Items.Add(item1); } else { progressBar2.Value++; continue; } } else { string directory = item.Text.Trim(); await ftp.DownloadFile(textBox4.Text, serverDir, directory); progressBar2.Value++; Database.FilesDataRow row = DatabaseManager.Database.FilesData.NewFilesDataRow(); row.Url = textBox1.Text; row.FileName = item.Text; row.FileSize = item.SubItems[3].Text; row.DateTime = DateTime.Now; row.Path = textBox4.Text + item.Text; DatabaseManager.Database.FilesData.AddFilesDataRow(row); DatabaseManager.Database.AcceptChanges(); DatabaseManager.Database.WriteXml(string.Format("{0}/data.dat", Application.StartupPath)); ListViewItem item1 = new ListViewItem(row.Id.ToString()); item1.SubItems.Add(row.Url); item1.SubItems.Add(row.FileName); item1.SubItems.Add(row.FileSize); item1.SubItems.Add(row.DateTime.ToLongDateString()); item1.SubItems.Add(row.Path); _mainForm.listView1.Items.Add(item1); } } MessageBox.Show("Download completed!"); button3.Enabled = true; IsExist(); for (int i = 1; i < listView1.Items.Count; i++) { listView1.Items[i].Checked = false; } } catch (Exception ex) { MessageBox.Show(ex.Message); button3.Enabled = true; } progressBar2.Value = 0; progressBar1.Value = 0; }