Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Progress bar in copia files
Forum - C# / VB.NET - Progress bar in copia files

Avatar
TSP (Ex-Member)
Pro


Messaggi: 99
Iscritto: 17/03/2008

Segnala al moderatore
Postato alle 19:59
Giovedì, 26/06/2008
Questo topic è stato chiuso dal moderatore

ho il seguente codice in una copia di files che lavora in un backgroundworker , come ricavo il progresso

Codice sorgente - presumibilmente C#

  1. private void CopyDirectory(string SourceDirectory, string TargetDirectory)
  2.         {
  3.             DirectoryInfo source = new DirectoryInfo(SourceDirectory);
  4.             DirectoryInfo target = new DirectoryInfo(TargetDirectory);
  5.             int currfile;
  6.             if (!source.Exists)
  7.                 return;
  8.             if (!target.Exists)
  9.                 target.Create();
  10.             FileInfo[] sourceFiles = source.GetFiles();
  11.             //progressBar1.Maximum = sourceFiles.Length;
  12.             currfile = sourceFiles.Length;
  13.             for (int i = 0; i < sourceFiles.Length; ++i)
  14.             {
  15.                 if (File.GetLastWriteTime(sourceFiles[i].FullName) > File.GetLastWriteTime(target.FullName + "\\" + sourceFiles[i].Name))
  16.                     //toolStripStatusLabel2.Text = "Copiando: " + sourceFiles[i].Name;
  17.                 //toolStripStatusLabel1.Text = currfile + "\\" + sourceFiles.Length;
  18.                 File.Copy(sourceFiles[i].FullName, target.FullName + "\\" + sourceFiles[i].Name, true);
  19.                
  20.                 currfile = currfile - 1;
  21.                 //progressBar1.Increment(1);
  22.             }
  23.             DirectoryInfo[] sourceDirectories = source.GetDirectories();
  24.             for (int j = 0; j < sourceDirectories.Length; ++j)
  25.             {
  26.  
  27.                 CopyDirectory(sourceDirectories[j].FullName, target.FullName + "\\" + sourceDirectories[j].Name);
  28.                
  29.             }
  30.  
  31.         }


PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:14
Venerdì, 27/06/2008
Calcola in anticipo la dimensioni della cartella, poi fai il rapporto tra la dimensione dei file copiati e quella della cartella per ottenere la percentuale.

PM
Avatar
TSP (Ex-Member)
Pro


Messaggi: 99
Iscritto: 17/03/2008

Segnala al moderatore
Postato alle 18:24
Venerdì, 27/06/2008
perfetto!
tante grazie:k:

PM