prog pour faire un backup copie toute une arborescence de fichiers vers un autre disque ( sans écraser ceux qui sont les meme que dans l'arborescense source )
lister les drives du systeme dans un combobox
faire un log des erreurs et l'afficher en fin de traitement
Source / Exemple :
'comment faire un backup en moins de 100 lignes de code sans fioritures
Public Class Form1
Dim x As Integer
''' <summary>
''' on charge les drives d
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
For x = 0 To My.Computer.FileSystem.Drives.Count
ComboBox1.Items.Add(My.Computer.FileSystem.Drives.Item(x))
Next
Catch ex As Exception
End Try
End Sub
''' <summary>
''' c'est le coeur du programme srcdir est un répertoire
''' destDrive est un disque
''' </summary>
''' <param name="srcdir"></param>
''' <param name="destDrive"></param>
''' <remarks></remarks>
Private Sub backup(ByVal srcdir As String, ByVal destDrive As String)
Dim src, dest, log As String
log = String.Empty
For Each file As String In My.Computer.FileSystem.GetFiles(srcdir, FileIO.SearchOption.SearchAllSubDirectories, "*.*")
src = file
dest = Replace(file, IO.Path.GetPathRoot(srcdir), destDrive)
Try
If IO.File.Exists(dest) Then
If Date.Compare(My.Computer.FileSystem.GetFileInfo(src).LastWriteTime, My.Computer.FileSystem.GetFileInfo(dest).LastWriteTime) = 0 Then
'le fichier est le même à 99,999%
Else
'overwrite
My.Computer.FileSystem.CopyFile(src, dest, True)
End If
Else
'copy
My.Computer.FileSystem.CopyFile(src, dest, False)
End If
Catch ex As Exception
log = log & Now.ToShortDateString & " " & Now.ToLongTimeString & "." & Now.Millisecond & ex.Message & vbCrLf
End Try
If ProgressBar1.Value = 99 Then ProgressBar1.Value = 1
ProgressBar1.Value = ProgressBar1.Value + 1
Application.DoEvents()
Next
If log = String.Empty Then
' MsgBox("Pas d'erreurs", MsgBoxStyle.Information)
Else
My.Computer.FileSystem.WriteAllText(Application.StartupPath & "\" & Today.ToLongDateString & ".log", log, True)
If MessageBox.Show("il y a eu des erreurs," & vbCrLf & "voulez vous voir le log maintenant?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Error) = Windows.Forms.DialogResult.Yes Then
Process.Start("notepad.exe", Application.StartupPath & "\" & Today.ToLongDateString & ".log")
End If
End If
End Sub
''' <summary>
''' pour sélectionner la source du backup
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim fdb As New FolderBrowserDialog
If fdb.ShowDialog = Windows.Forms.DialogResult.OK Then
Label1.Text = fdb.SelectedPath
Label2.Text = Replace(Label1.Text, "C:\", ComboBox1.SelectedItem.ToString)
End If
Catch ex As Exception
Label2.Text = "Selectionner un drive et recommencer"
End Try
End Sub
''' <summary>
''' c'est parti maintenant qu'on a toutes les infos
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ProgressBar1.Style = ProgressBarStyle.Marquee
ProgressBar1.Value = 1
backup(Label1.Text, ComboBox1.SelectedItem.ToString)
ProgressBar1.Style = ProgressBarStyle.Blocks
ProgressBar1.Value = 100
End Sub
End Class
Conclusion :
vraiment très simple mais peut s'averer aussi très utilse
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.