cs_lostrailler
Messages postés26Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention29 septembre 2010
-
4 oct. 2006 à 10:19
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
4 oct. 2006 à 20:26
Bonjour à tous.
Voilà, j'ai besoin de parcourir une partition d'un disque en entier. Il faut que je récupère sur tous les fichiers de la partition des informations comme la date de création, modification, dernier accès, la taille, l'auteur, le chemin... et ensuite les envoyer vers une base de données Access pour le moment.
Mon problème vient du fait que je ne sais pas du tout comment parcourir la partition entièrement et comment m'arreter sur chaque fichier (pour en récupérer les infos).
Je sais comment récupérer les infos et comment faire la connexion avec la base et y envoyer les données.
Si vous pouviez m'aider s'il vous plait même si vous ne savez qu'un seul bout de ce que je demande.
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 4 oct. 2006 à 12:34
Bonjour,
Ci-dessous, un script (trouvé sur ce Forum), qui crée un fichier (sur le Bureau)
contenant le nom des répertoires et des fichiers.
Facilement adaptable en VB6.
Il suffit de rajouter pour chaque fichier lu les informations que tu veux.
J'ai mis un séparateur "|", ce qui te permettras de mettre le résultat dans un tableau pour export.
jean-marc
ex:
Dim ShellO: Set ShellO = CreateObject("WScript.Shell")
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim SListe: Dim Schemin: Dim cpt
'Dossier à traiter
Schemin = "D:" 'ControleEuroFactor" 'Dossier à modifier
'Dossier Bureau de windows + ""
SListe = ShellO.SpecialFolders("Desktop")
If Right(SListe, 1) <> "" Then SListe = SListe & ""
'Ouverture du fichier contenant l'arborescence du répertoire à traiter vers le Bureau
Dim Fichier: Set Fichier = FSO.CreateTextFile(SListe & "Liste.txt", 1, True)
'Écrire la premiere ligne de la liste
Fichier.WriteLine (Schemin)
'Lister l'arborescence du dossier
ListerDossier Schemin, Fichier
'Fermeture du fichier contenant l'arborescence du répertoire à traiter
Fichier.WriteLine
Fichier.WriteLine "Nombre de Fichiers : " & cpt
Fichier.Close Set ShellO Nothing: Set FSO Nothing: Set Fichier = NothingSet ObjRep Nothing: Set ObjSubRep NothingSet ObjRepFind Nothing: Set ObjSubFile Nothing
MsgBox "Script terminé"
Function ListerDossier(Schemin, Fichier) 'Lister l'arborescence du dossier
On Error Resume Next
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim ObjRep: Set ObjRep = FSO.GetFolder(Schemin) 'dossier
Dim ObjSubRep: Set ObjSubRep = ObjRep.SubFolders 'sous-dossiers
Dim ObjSubRepItem
For Each ObjSubRepItem In ObjSubRep 'Traiter chaque sous-dossiers
Fichier.WriteLine (ObjSubRepItem.Path) 'Ecrire le path dans la liste
ListerDossier ObjSubRepItem.Path, Fichier 'traiter les sous-dossiers
Next
Dim ObjRepFind: Set ObjRepFind = FSO.GetFolder(Schemin) 'dossier
Dim ObjSubFile: Set ObjSubFile = ObjRepFind.Files 'Fichiers
Dim ObjSubFileItem
For Each ObjSubFileItem In ObjSubFile 'Traiter chaque fichier du répertoire
Fichier.WriteLine ObjSubFileItem.Path & "|" & ObjSubFileItem.DateCreated &_
"|" & ObjSubFileItem.DateLastAccessed & "|" & ObjSubFileItem.DateLastModified & "|" 'Ecrire le path dans la liste
cpt = cpt + 1
Next
End Function
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 4 oct. 2006 à 11:37
Salut,
Essaie ceci pour lister dans le debug tout les fichiers contenu dans un repertoire et ses sous repertoire.
Pour etre utilisable il faut ajouter la référence Microsoft Scripting Runtime
Private Sub Form_Load()
Dim Fso As New FileSystemObject
Call TraiterToutLesFichier(Fso, "C:\Checkplus")
Set Fso = Nothing
End Sub
Private Function TraiterToutLesFichier(Fso As FileSystemObject, StrRepertoire As String)
Dim Rep As Folder
Dim StrFile As File
Dim StrSubFolder As Folder
'Recuperation du repertoire
Set Rep = Fso.GetFolder(StrRepertoire)
'Boucle qui affiche tout les nom de fichier contenu
'Dans la collection "Files" representant les fichiers
'Du repertoire ICI C:\
For Each StrFile In Rep.Files
Debug.Print StrFile.Path
Next
'Pour chaque sous repertoire on rappelle la meme fonction
'avec en parametre le chemin du sousrepertoire
For Each StrSubFolder In Rep.SubFolders
Call TraiterToutLesFichier(Fso, StrSubFolder.Path)
Next
Set Rep = Nothing
Set StrFile = Nothing
cs_lostrailler
Messages postés26Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention29 septembre 2010 4 oct. 2006 à 14:13
Merci à tous les 2 pour votre réponse. Vos 2 exemples fonctionnent très bien. Celui de JMO se rapproche plus à mon besoin. Il me reste plus qu'à modifier et rajouter quelques lignes pour tout envoyer dans ma base.
Merci encore. :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_lostrailler
Messages postés26Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention29 septembre 2010 4 oct. 2006 à 16:59
J'ai juste oublié, pour le comptage (avec la variable cpt), il faut la passer également en paramètre sur la fonction ListerDossier sinon le comptage ne s'effectue pas