2016-11-14 11 views
1

ファイルを移動するときにどのように進行状況バーを表示できますか?ファイルの移動ループと進行状況を表示

は現在、私は、この持っている:

private void btnMoveFile_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       if (pathFrom != null && pathTo != null) 
       { 
        if (txtRename.Text != null) 
        { 
         pathTo = pathTo + "\\" + txtRename.Text; 
        } 

        else 
        { 

         pathTo = pathTo + "\\" + Path.GetFileName(pathFrom); 
        } 

        File.Move(pathFrom, pathTo); 
       } 

       else 
       { 
        MessageBox.Show("Kies eerst een bestand."); 
       } 
      } 

      catch(Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

     private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
     { 
      for (int i = 1; i <= 100; i++) 
      { 
       // Wait 100 milliseconds. 
       Thread.Sleep(100); 
       // Report progress. 
       backgroundWorker1.ReportProgress(i); 
      } 
     } 

     private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
     { 
      progressBar1.Value = e.ProgressPercentage; 
      // Set the text. 
      this.Text = e.ProgressPercentage.ToString(); 
     } 

をしかしFile.Move(pathFrom, pathTo);が、私はこれを行うにはどのようにないアイデアを持っていないてきたルーペではありませんので。

+0

このメソッドを非同期に呼び出し、dispplayにロード中メッセージ – CDrosos

+1

1つのファイルコピーの進行状況を表示するには、2つのファイルストリームを開き、バイトをコピーする必要があります。この方法で、コピーの進行状況を表示できます。 File.Moveを使用することはできません –

+0

一般的なアドバイス:あなたのコードを移植性のあるものにして、将来のリリースのOSで生き残るためには、組み込みのライブラリ関数と定数を使ってパス変数を操作する方が良いでしょう: 'Path.Combine'と' Path。 DirectorySeparatorChar'。これは公開されているドキュメントやサンプルコードではあまりにもしばしば無視されています。 – dlatikay

答えて

関連する問題