Как вставить индикатор выполнения При копировании изображений с помощью count
Привет Команда,
Я хотел бы вставить индикатор выполнения при загрузке файла (с подсчетом) и при копировании изображений (с подсчетом).
ВО ВРЕМЯ ЗАГРУЗКИ ФАЙЛА:
private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); //dlg.ShowDialog(); if (dlg.ShowDialog() == DialogResult.OK) { string fileName; fileName = dlg.FileName; using (StreamReader sr = new StreamReader(fileName)) { while ((line = sr.ReadLine()) != null) { listBox1.Items.Add(line); string[] findingparent = line.Split(','); if (line.Contains(",Y,,") == true) { parents.Add(findingparent[0], ",Y,,," + findingparent[findingparent.Length - 1]); parentcount++; } else { parents.Add(findingparent[0], ",,,,"); childcount++; } } sr.Close(); label6.Text = (listBox1.Items.Count).ToString(); label4.Text = parentcount.ToString(); label5.Text = childcount.ToString(); } } }
ПРИ КОПИРОВАНИИ ИЗОБРАЖЕНИЙ:
if (!int.TryParse(textBox3.Text, out int thresholdValue) || thresholdValue < 1) { // TODO: Display an error message to the user return; } string source = textBox1.Text; string destination = textBox2.Text; int totalFileCount = 0; int currentSubFolder = 0; int remainingFileCount = 0; string destinationFolder = null; ISet<string> extensions = new HashSet<string>(StringComparer.OrdinalIgnoreCase) { ".tif", ".tiff", ".jpg", ".jpeg" }; IEnumerable<string> files = Directory .EnumerateFiles(source, "*", SearchOption.AllDirectories) .Where(f => extensions.Contains(Path.GetExtension(f))); foreach (string sourceFile in files) { if (remainingFileCount == 0) { // First file, or the sub-folder is full: currentSubFolder++; destinationFolder = Path.Combine(destination, currentSubFolder.ToString("D3")); if (!Directory.Exists(destinationFolder)) Directory.CreateDirectory(destinationFolder); remainingFileCount = thresholdValue; } string destinationFile = Path.Combine(destinationFolder, Path.GetFileName(sourceFile)); File.Copy(sourceFile, destinationFile); totalFileCount++; remainingFileCount--; } MessageBox.Show("All " + totalFileCount + " files are copied");
Что я уже пробовал:
Я попытался добавить индикатор выполнения в щелчок кнопки копирования, где файлы начинают копировать, но я не смог заставить индикатор выполнения работать над ним
Попробовал также приведенный ниже код, но не работает:
pBar.Location = new System.Drawing.Point(20, 20); pBar.Width = 200; pBar.Height = 30; pBar.Name = "progressBar1"; pBar.Dock = DockStyle.Bottom; pBar.Value = totalFileCount; this.Text = "Progress: " + totalFileCount.ToString() + "%";