Mcopy (utilitaire de copies)

Description

Utilitaire de copie se basant sur l'api Windows pour effectuer plusieurs copies à la fois "diffèrentes sources et différentes destinations."
Pensez à inclure la dll WinXPC Engine.ocx dans le répertoire system32 sous le dossier Windows pour rendre les controles similaires à ceux utilisés par windows.
Beaucoups de sources m'ont servi pour élaborer ce petit programme merci à tous leurs auteurs.

Source / Exemple :


Dim cd As New Collection, cs As New Collection
Private Sub Command1_Click()
    Form2.Show vbModal
End Sub

Private Sub Command2_Click()
   Command1.Enabled = False
   get_targets  'charger les ch. destinations dans ds
   copy         'charger les ch. sources dans cs
   delete_files 'effacer les fichiers paths et targets
   
End Sub

Private Sub get_targets()
    Dim id As Integer, i As Long
    Dim ch As String
    
    id = FreeFile
    Open App.Path & "\todo\targets.txt" For Input As #id
        
        'charger la liste des dossiers de destination
        While Not EOF(id)
            Line Input #id, ch
            If ch <> "" Then
                ch = ch & "\"
                i = i + 1
                cd.Add ch, CStr(i)
            End If
        Wend
        
    Close #id
    
    ProgressBar1.Max = CSng(cd.Count)
End Sub

Private Sub copy()
    Dim id As Integer, i As Long, j As Long
    Dim ch As String
    Dim fso As New FileSystemObject
        
    On Error Resume Next
    id = FreeFile
    
    Open App.Path & "\todo\paths.txt" For Input As #id
        
        For Each d In cd
            If EOF(id) = True Then Exit For
            
            Label2.Caption = d
            Label2.Refresh
            
            'remplissage de cs
            ch = "initiale"
            j = 0
            While ch <> ""
                Line Input #id, ch
                If ch <> "" Then
                    j = j + 1
                    cs.Add ch, CStr(j) 'key utilisé pour vider cs : le seul moyen qui ne provoque pas d'erreur
                End If
            Wend
            
            'copier des ch. sources dans cs
            j = 0
            ProgressBar2.Max = CSng(cs.Count)
            For Each s In cs
                Label1.Caption = s
                Label1.Refresh
                
                If fso.FileExists(s) = True Then fso.CopyFile s, d
                If fso.FolderExists(s) = True Then fso.CopyFolder s, d
                j = j + 1
                DoEvents
                ProgressBar2.Value = CSng(j)
                ProgressBar2.Refresh
            Next
            
            'vider cs
            For j = 1 To cs.Count
                cs.Remove CStr(j)
            Next
            
            i = i + 1
            DoEvents
            ProgressBar1.Value = CSng(i)
            ProgressBar1.Refresh
        Next
        
    Close #id
    
    'vider la collection des ch. destination
    For i = 1 To cd.Count
        cd.Remove CStr(i)
    Next
            
    Command2.Enabled = False
    Command1.Enabled = True
End Sub

Private Sub delete_files()
    Kill App.Path & "\todo\paths.txt"
    Kill App.Path & "\todo\targets.txt"
End Sub

Private Sub Command3_Click()
    MsgBox "MultiCopy pour Xp" & vbCrLf & "Version : 1.3" & vbCrLf & "Programmation: cdc1604" & vbCrLf & "e-mail : mbenthebet@gmail.com", vbInformation, "A propos"
End Sub

Private Sub Form_Load()
    Dim ch As String
    
    'Si l'un au moins des fichiers existe le supprimer
    
    ch = App.Path & "\todo\paths.txt"
    If Dir(ch) = "paths.txt" Then
        Kill ch
    End If
    
    ch = App.Path & "\todo\targets.txt"
    If Dir(ch) = "targets.txt" Then
        Kill ch
    End If
    
    WindowsXPC1.InitSubClassing
End Sub

Conclusion :


L'outil est dans sa première version... Si vous l'essayez veuillez reporter les bugs rencontrés. Toutes vos remarques sont les bienvenues.

Codes Sources

A voir également

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.

Du même auteur (cdc1604)