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.
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.