Bonjour,
J'ai réalisé un petit programme pour copier le contenu d'un répertoire (fichiers+sous-répertoires) cf ci-dessous
quelles lignes de commande dois-je ajouter si je ne veux pas que celui-ci copie les fichiers ou répertoires déjà existants.
merci d'avance
----------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim FichOuRep As String
Dim i As Integer
Dim j As Integer
Dim Tab1() As String
Dim Tab2() As String
x = 0
InitDir = "D:\CEM\"
TargetDir = "C:\AA\"
If Right(InitDir, 1) <> "\" Then InitDir = InitDir & "\"
If Right(TargetDir, 1) <> "\" Then TargetDir = TargetDir & "\"
FichOuRep = Dir(InitDir, vbDirectory + vbArchive)
On Error Resume Next 'problème avec certains fichiers comme pagefile.sys
Do While FichOuRep <> ""
If FichOuRep <> "." And FichOuRep <> ".." Then
If (GetAttr(InitDir & FichOuRep) And vbDirectory) = vbDirectory Then
i = i + 1
ReDim Preserve Tab1(i)
Tab1(i) = FichOuRep
Else
j = j + 1
ReDim Preserve Tab2(j)
Tab2(j) = FichOuRep
End If
End If
FichOuRep = Dir
Loop
On Error GoTo 0
For i = 1 To UBound(Tab1)
ProgressBar1 = (i * 50) / UBound(Tab1)
If FichierExist(TargetDir & Tab1(i) & "\") = False Then
MkDir TargetDir & Tab1(i)
End If
If FichierExist(TargetDir & Tab1(i)) = False Then
CopieRep InitDir & Tab1(i), TargetDir & Tab1(i)
End If
Next
For j = 1 To UBound(Tab2)
ProgressBar1 = 50 + ((j * 50) / UBound(Tab2))
If FichierExist(TargetDir & Tab2(j)) = False Then
FileCopy InitDir & Tab2(j), TargetDir & Tab2(j)
x = x + 1
Label1.Caption = x
Label1.Refresh
End If
Next
End Sub
---------------------------------------------------------------------------------------
Private Sub CopieRep(InitDir As String, TargetDir As String)
Dim FichOuRep As String
p = 0
If Right(InitDir, 1) <> "\" Then InitDir = InitDir & "\"
If Right(TargetDir, 1) <> "\" Then TargetDir = TargetDir & "\"
FichOuRep = Dir(InitDir, vbDirectory + vbArchive)
Do While FichOuRep <> ""
If FichOuRep <> "." And FichOuRep <> ".." Then
If (GetAttr(InitDir & FichOuRep) And vbDirectory) = vbDirectory Then
MkDir TargetDir & FichOuRep
CopieRep InitDir & FichOuRep, TargetDir & FichOuRep
Else
FileCopy InitDir & FichOuRep, TargetDir & FichOuRep
x = x + 1
Label1.Caption = x
Label1.Refresh
End If
End If
FichOuRep = Dir
Loop
End Sub