Itération sur nombre de fichiers

Résolu
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013 - 10 sept. 2007 à 12:57
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013 - 10 sept. 2007 à 15:52
Bonjour,

J'utilise une source du site pour récupérer le nombre d'objets présents dans mon répertoire: http://www.vbfrance.com/codes/DETERMINE-TAILLE-REPERTOIRE-NOMBRE-OBJETS-FIGURANT-DEDANS_22887.aspx
Mais le problème c'est que je n'arrive pas à exclure les fichiers des sous répertoires. En gros, je souhaite les exclure du total et n'avoir que les fichiers dans la racine du répertoire.

la fonction utilisée de cette source est PathNumberOfObjet qui retourne le nombre d'objets dans le répertoire. Je voudrais itérer sur chaque dossier en y comptant le nombre d'objets pour le déduire du total. Le code donne ça, mais ça ne marche pas, et je ne suis pas sûr de pouvoir utiliser "folder" (erreur 438, l'objet ne gère pas cette propriété ou cette méthode...)

Dim parasite as integer
Dim fofo as string

For Each Folder In Dir1
    fofo = Folder.Name
    parasite = parasite + PathNumberOfObjet (fofo, FILE_ATTRIBUTE_ALL_FILE)
Next

nbfichier = PathNumberOfObjet(Dir1.Path, FILE_ATTRIBUTE_ALL_FILE) - parasite

 Je me doute que l'erreur saute au yeux pour d'autres, mais mes yeux de débutants n'y voient rien !

12 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 sept. 2007 à 13:08
Essaie peu être

Private Sub Form_Load()
'ceci devrait te renvoyer le nombre de fichier contenu dans C:\
   MsgBox (FileRepCount("C:\"))
End Sub<hr />

Private Function FileRepCount(ByVal RepPath As String) As Integer
Dim Fso
   Set Fso = CreateObject("Scripting.FileSystemObject")
   FileRepCount = Fso.GetFolder(RepPath).Files.Count
   Set Fso = Nothing
End Function<hr />, ----
[code.aspx?ID=41455 By Renfield]
Si cela est très loin de ce que tu souhaites faire. Explique un peu mieux.

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 sept. 2007 à 15:14
Re,
C'est bien parce que c'est lundi et que je suis encore plein de bonne volonté

Tiens cette correction de la meme fonction de compte que les fichiers ayant les extension avi*

Private Function FileRepCount(ByVal RepPath As String) As Integer
Dim Fso
Dim Fi
   Set Fso = CreateObject("Scripting.FileSystemObject")
   For Each Fi In Fso.GetFolder(RepPath).Files
       If UCase(Fso.GetExtensionName(Fi.Name)) = "AVI" Then
           FileRepCount = FileRepCount + 1
       End If
   Next
   Set Fso = Nothing
End Function<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 sept. 2007 à 13:03
Salut,
Toi tu cherches simplement à récupérer la taille des fichiers présent dans un répertoire SANS aller chercher la taille des fichiers éventuels sousrépertoire c'est cela?

@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 sept. 2007 à 13:05
Re,
Oups je crois qu'en te relisant je me suis trompé ce n'est pas du tout ce que je dit que tu cherhce à faire...

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
10 sept. 2007 à 13:17
Pour éclaircir le problème:

J'ai des fichiers vidéos dont le nombre de frames est identique. Je multiplie donc le nombre de frames par le nombre de fichiers vidéos dans mon répertoire pour avoir le nombre total de frames, tous fichiers confondus. Le problème, c'est que j'ai un sous-répertoire "son", avec des fichiers audio dedans. Or, les fichiers son du sous-répertoire "son" sont aussi comptés avec ma fonction PathNumberOfObjet (tout comme avec la tienne je suppose), ce qui biaise le résultat du nombre de frames. (dans mon exemple, il y a trois fichiers vidéos dans mon dossier, et 5 audio dans le sous dossier "son")

Je voudrais, pour chaque sous répertoire de mon répertoire de départ, compter le nombre d'objets, et le soustraire du nombre d'objet total pour n'avoir que ce qui m'intéresse.

C'est la seule méthode que j'ai trouvé pour le moment mais si tu as plus simple pour connaitre le nombre de fichiers dans un répertoire, à l'exclusion du nomnre de fichier des sous-répertoires, je suis preneur!
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
10 sept. 2007 à 13:20
Je précise que je ne suis pas toujours dans la même configuration de répertoires, sous-répertoires, et que du coup je voudrais une fonction qui fonctionne à tous les coups, quelque soit le nombre de ss répertoires.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 sept. 2007 à 13:31
Re,
Non avec ma fonction SEULS les fichiers du répertoire passer en parametre sont comptés. LEs fichiers qu'il peu y avoir dans les sous répertoire ne sont pas compté.
Le mieux c'est que tu test en mettant ton répertoire pour voir.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
10 sept. 2007 à 14:12
Mes excuses Julien, ta fonction était pile poil ce qu'il me fallait, et elle fonctionne à merveille. Pour la deuxième fois de la journée, MERCI!
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 sept. 2007 à 14:14
Est-ce que les fichiers à compter ont des extensions différentes et toujours les mêmes ?

MPi
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
10 sept. 2007 à 14:50
Ce sont tous des fichiers avi mais il peut y en avoir d'autres. J'ai donc spécifié que seuls les fichiers à traiter doivent être dans le répertoire, et c'est dommage. L'idéal aurait été une méthode pour compter les fichiers avi uniquement les fichiers du répertoire mais je n'ai pas ça sous la main...
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
10 sept. 2007 à 14:53
holà je viens de me relire et ce n'est pas très clair.

-L'idéal serait de ne compte que les fichiers.avi du répertoire (sans ceux des sous répertoires)
- Il n'y a pas forcément que des .avi dans le répertoire
- J'ai donc écrit sur ma form, au dessus de la filebox "seuls les fichiers à traiter doivent être dans le répertoire" (solution de facilité, je vous l'accorde)
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
10 sept. 2007 à 15:52
Que dire de plus... Je suis verni! Merci

Julien +1
0
Rejoignez-nous