igloo26
Messages postés1Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention19 avril 2004
-
19 avril 2004 à 16:32
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
20 avril 2004 à 15:24
Bonjour à tous,
j'aimerais faire un petit prog qui recherche sur le disque tous les fichiers *.doc par exemple et les recopier vers un dossier temporaire en recréant l'arborescence des fichiers.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 20 avril 2004 à 15:24
Salut,
Voilà un bout de code que g déjà utilisé et qui marche pour moi. Regarde si ça te convient.
'Sélectionner "Microsoft Scripting Runtime" dans Projet/Références
Dim fso As FileSystemObject
Dim cpt As Long ' pour le nombre de fichiers trouvés
Dim Tbl_FichierSource(500) As String ' Là g limité à 500 mais tu peux voir + grand
Dim Tbl_FichierDestination(500) As String ' ou jouer avec des redim dans le code
Dim Tbl_DossierReception(500) As String
Dim Dossier_Reception As String
Private Sub Rechercher_Fichiers(Dossier As String)
Dim fld As Folder
Dim subfld As Folder
Dim fl As File
' Set du dossier à parcourir
Set fld = fso.GetFolder(Dossier)
' Listage des fichiers du dossier sauf si c la corbeille
' ou le dossier de réception
If InStr(Dossier, "RECYCLED") = 0 And Left$(UCase(Dossier), Len(Dossier_Reception)) <> UCase(Dossier_Reception) Then
For Each fl In fld.Files
If LCase(Right(fl.Name, 3)) = "doc" Then
Tbl_FichierSource(cpt) = Dossier & fl.Name
Tbl_DossierReception(cpt) = Right(Dossier, Len(Dossier) - 3)
Tbl_FichierDestination(cpt) = fl.Name
cpt = cpt + 1
End If
Next
End If
' Recherche récursive des fichiers dans les sous-dossiers
For Each subfld In fld.SubFolders
Rechercher_Fichiers Dossier & subfld.Name & ""
Next
End Sub
Private Sub Form_Load()
Dim i As Long
Dim Dossier_Depart As String
Dim Dossier_Arrivee As String
Dim pos As Integer
Dim tmp_Dos As String
' Dossier de départ
Dossier_Depart = "C:"
Dossier_Reception = "c:\temp"
' Création du FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(Dossier_Reception) Then
fso.CreateFolder Dossier_Reception
End If
cpt = 0
' Rechercher les fichiers
Rechercher_Fichiers Dossier_Depart