2013-08-02 57 views
0

下面我介紹了複製應用程序的導入功能的目錄的代碼,我希望更新進度欄和標籤符合。我剛剛閱讀了關於背景工作者的內容,並且它也適合這種特殊情況。 繼承人的代碼:ProgressBar問題:將文件夾複製到目標更新

private void importToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     lbProcessFiles.Visible = false; 
     pbProcessFiles.Visible = false; 

     DialogResult result = folderBrowserDialog1.ShowDialog(); 
     if (result == DialogResult.OK) 
     { 
      string sourcePath = folderBrowserDialog1.SelectedPath; 
      string destinationPath = @"Logs\\"; 

      //Now Create all of the directories 
      foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories)) 
      { 
       lbProcessFiles.Visible = true; 
       lbProcessFiles.Text = "Copying Directories"; 
       pbProcessFiles.Value = 0; 
       pbProcessFiles.Maximum = dirPath.Length; 

       Directory.CreateDirectory(dirPath.Replace(sourcePath, destinationPath)); 

       pbProcessFiles.PerformStep(); 
      } 

      lbProcessFiles.Text = "Now Copying Files"; 

      //Copy all the files 
      foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories)) 
      { 
       pbProcessFiles.Value = 0; 
       pbProcessFiles.Maximum = newPath.Length; 
       lbProcessFiles.Text = "Copying Files"; 

       File.Copy(newPath, newPath.Replace(sourcePath, destinationPath)); 

       pbProcessFiles.PerformStep(); 
      }      
     } 
     lbProcessFiles.Text = " Import Complete"; 
    } 

回答

1

您在foreach的每次迭代的進度的值設置爲零。 Move pbProcessFiles.Value = 0; out of the foreach statement ...

+0

謝謝你,這麼簡單,不能相信我沒有看到它 – Rg786

相關問題