Popo95
07-02-2015, 11:45
Salve a tutti!
Devo aggiungere ad un mio programma scritto in Visual Basic una funzione che effettui la copia di backup dei dati dell'utente dalla partizione dell'OS ad un'altra. Ho trovato sul Web del codice già pronto che però funziona parzialmente:
Private Sub CopyFile(ByVal sourceDir As String, ByVal targetDir As String)
Dim files() As String = IO.Directory.GetFiles(sourceDir, "*.*", IO.SearchOption.AllDirectories)
With pbr_backup
.Minimum = 0
.Value = .Minimum
.Maximum = files.Count
End With
Dim newDir As String
Dim FI As IO.FileInfo
For Each f As String In files
FI = New IO.FileInfo(f)
newDir = targetDir & "\" & FI.DirectoryName.Substring(sourceDir.Length) & "\"
If Not IO.Directory.Exists(newDir) Then IO.Directory.CreateDirectory(newDir)
IO.File.Copy(f, newDir & FI.Name, True)
pbr_backup.Value += 1
Next
MessageBox.Show("Copia completata.")
End Sub
Private Sub frm_recovery_os_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
CopyFile("C:\UserFile", "E:\Backup")
End Sub
Il problema che si presenta è semplice: la ProgressBar (che ho chiamato pbr_backup) si azzera dopo la copia di ogni singolo file, invece io voglio che la barra indichi l'avanzamento totale della copia dei file.
Qualcuno può aiutarmi a capire cosa c'è di sbagliato?
Grazie in anticipo :)
Devo aggiungere ad un mio programma scritto in Visual Basic una funzione che effettui la copia di backup dei dati dell'utente dalla partizione dell'OS ad un'altra. Ho trovato sul Web del codice già pronto che però funziona parzialmente:
Private Sub CopyFile(ByVal sourceDir As String, ByVal targetDir As String)
Dim files() As String = IO.Directory.GetFiles(sourceDir, "*.*", IO.SearchOption.AllDirectories)
With pbr_backup
.Minimum = 0
.Value = .Minimum
.Maximum = files.Count
End With
Dim newDir As String
Dim FI As IO.FileInfo
For Each f As String In files
FI = New IO.FileInfo(f)
newDir = targetDir & "\" & FI.DirectoryName.Substring(sourceDir.Length) & "\"
If Not IO.Directory.Exists(newDir) Then IO.Directory.CreateDirectory(newDir)
IO.File.Copy(f, newDir & FI.Name, True)
pbr_backup.Value += 1
Next
MessageBox.Show("Copia completata.")
End Sub
Private Sub frm_recovery_os_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
CopyFile("C:\UserFile", "E:\Backup")
End Sub
Il problema che si presenta è semplice: la ProgressBar (che ho chiamato pbr_backup) si azzera dopo la copia di ogni singolo file, invece io voglio che la barra indichi l'avanzamento totale della copia dei file.
Qualcuno può aiutarmi a capire cosa c'è di sbagliato?
Grazie in anticipo :)