begin process at 2010 03 21 22:37:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > RÉCUPÉRER LA LISTE DES FICHIERS (AVEC OU SANS EXTENSION PRÉCISE) D'UNE ARBORESCENCE

RÉCUPÉRER LA LISTE DES FICHIERS (AVEC OU SANS EXTENSION PRÉCISE) D'UNE ARBORESCENCE


 Information sur la source

Note :
Aucune note
Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous :lister, fichiers, arborescence Niveau :Initié Date de création :22/05/2005 Date de mise à jour :13/06/2005 17:49:24 Vu :11 533

Auteur : Chris_LaFouine

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Cette fonction renvoie un tableau de string avec le chemin d'accès de tous les fichiers se trouvant dans l'arborescence spécifiée en paramètre. exemple d'utilisation :

'Renvoie tous les fichiers
Dim tab() as String = getFilesInDirectory("d:\")

'Renvoie tous les fichiers ayant l'extension .mp3 ou .avi
Dim tab() as String = getFilesInDirectory("d:\","mp3;avi")

Source

  • 'Charge un tableau de String avec la liste des chemins d'accès des fichiers d'une arborescence
  • Private Function getFilesInDirectory(ByVal path As String, Optional ByVal ext As String = "") As String()
  • 'Déclarations
  • Dim dir As IO.Directory
  • Dim arrFiles As New ArrayList
  • Dim file As String
  • Dim tabExt() As String = Split(ext, ";")
  • Dim nbExt As Int32 = tabExt.Length
  • Dim i, j As Int32
  • Dim trouve As Boolean
  • Try
  • 'On copie tous les "fichiers" du répertoire path...
  • '... dans le tableau arrFiles
  • arrFiles.AddRange(dir.GetFileSystemEntries(path))
  • 'Pour chaque fichiers du tableau...
  • i = 0
  • While i < arrFiles.Count
  • file = arrFiles(i)
  • '...si c'est un répertoire
  • If dir.Exists(file) Then
  • '...alors on ajoute tous les fichiers qu'il contient...)
  • arrFiles.AddRange(getFilesInDirectory(file, ext))
  • End If
  • '... si le fichier n'a pas l'extension souhaitée...
  • '... ou que c'est un répertoire alors...
  • '... on supprime la ligne SANS incrémenter i...
  • '... car en supprimant, on va "remonter" tous les éléments...
  • '... suivant cette référence et l'élément suivant l'élément courant...
  • '... n'aurait pas été traité si on aurait incrémenté i
  • If dir.Exists(file) Then
  • arrFiles.RemoveAt(i)
  • Else
  • 'test d'extension
  • trouve = False
  • j = 0
  • While Not trouve AndAlso j <= nbExt - 1
  • If file.EndsWith("." & tabExt(j)) Then
  • trouve = True
  • Else
  • j += 1
  • End If
  • End While
  • 'S'il a pas trouvé les extensions... on le supprime
  • If Not trouve Then
  • arrFiles.RemoveAt(i)
  • Else
  • i += 1
  • End If
  • End If
  • End While
  • Return (arrFiles.ToArray(GetType(String)))
  • Catch ex As Exception
  • MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur")
  • Return (Nothing)
  • End Try
  • End Function
    'Charge un tableau de String avec la liste des chemins d'accès des fichiers d'une arborescence
    Private Function getFilesInDirectory(ByVal path As String, Optional ByVal ext As String = "") As String()
        'Déclarations
        Dim dir As IO.Directory
        Dim arrFiles As New ArrayList
        Dim file As String
        Dim tabExt() As String = Split(ext, ";")
        Dim nbExt As Int32 = tabExt.Length
        Dim i, j As Int32
        Dim trouve As Boolean

        Try
            'On copie tous les "fichiers" du répertoire path...
            '... dans le tableau arrFiles
            arrFiles.AddRange(dir.GetFileSystemEntries(path))

            'Pour chaque fichiers du tableau...
            i = 0
            While i < arrFiles.Count
                file = arrFiles(i)

                '...si c'est un répertoire
                If dir.Exists(file) Then
                    '...alors on ajoute tous les fichiers qu'il contient...)
                    arrFiles.AddRange(getFilesInDirectory(file, ext))
                End If

                '... si le fichier n'a pas l'extension souhaitée...
                '... ou que c'est un répertoire alors...
                '... on supprime la ligne SANS incrémenter i...
                '... car en supprimant, on va "remonter" tous les éléments...
                '... suivant cette référence et l'élément suivant l'élément courant...
                '... n'aurait pas été traité si on aurait incrémenté i
                If dir.Exists(file) Then
                    arrFiles.RemoveAt(i)
                Else
                    'test d'extension
                    trouve = False
                    j = 0
                    While Not trouve AndAlso j <= nbExt - 1
                        If file.EndsWith("." & tabExt(j)) Then
                            trouve = True
                        Else
                            j += 1
                        End If
                    End While

                    'S'il a pas trouvé les extensions... on le supprime
                    If Not trouve Then
                        arrFiles.RemoveAt(i)
                    Else
                        i += 1
                    End If

                End If
            End While

            Return (arrFiles.ToArray(GetType(String)))

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur")
            Return (Nothing)
        End Try
    End Function

 Conclusion

Pour les explications, regardez les commentaires, je trouve que c'est suffisant!


 Historique

22 mai 2005 21:12:59 :
Maintenant, on peux spécifier plusieurs extensions en spéarant les extensions par des ";"
30 mai 2005 16:23:12 :
Plus besoin de la classe ArrayListEx !!!
13 juin 2005 17:49:24 :
Y avait un gros bug idiot que je n'avais pas géré dans la version précédente. Maintenant ça fonctionne tout bien! (j'ai testé)

 Sources du même auteur

NUMÉRO DE LA SEMAINE : SANS LES BUGS DE LA SEMAINE 53 ET DU ...

 Sources de la même categorie

Source avec Zip Source avec une capture TRAITEMENT DES NOMS DE FICHIERS. par artgile
Source avec Zip Source .NET (Dotnet) GESTION DE PARC AUTOMOBILE AVEC SÉRIALISATION par guyr07
Source avec Zip Source avec une capture Source .NET (Dotnet) FICHIERS_CACHÉS_LECTURE_SEULE par Le Pivert
Source avec Zip Source avec une capture CHANGEUR D'ICONES par djgab21
Source .NET (Dotnet) DIRECTDISKACCESS par XelectroX

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BART VOTRE BUREAU DANS UNE BARRE par alfamick
Source avec Zip LISTE DES FICHIERS D'UNE ABORESCENCE DE DOSSIERS par Niko2003
Source avec Zip Source avec une capture FILEVIEW ==> USERCONTROL POUR EXPLORER FICHIERS ET/OU DOSSIE... par violent_ken
Source avec Zip Source avec une capture Source .NET (Dotnet) LISTER LES FICHIERS ET DOSSIERS AVEC OPTION RECURSIVITÉ par fenhryl
Source avec Zip UTILISER UN TREEVIEW ET UN HIERARCHICALFLEXGRID POUR AFFICHE... par cmarcotte

Commentaires et avis

Commentaire de FeelCode le 22/05/2005 21:42:35

tu aurai du utiliser l'api finfile pour le faire :) ensuite tu aplisque directement le filtre dessus et hop :) m'enfin l'idée est pas mal pourquoi pas :)

Commentaire de Pym Corp le 22/05/2005 23:35:31

Ou encore plus simplement avec le framework, à vous d'améliorer après.

'Renvoie tous les fichiers
IO.Directory.GetFiles("C:\")

'Renvoie tous les fichiers ayant l'extension .mp3
Dim Str As String
For Each Str In IO.Directory.GetFiles("C:\")
If IO.Path.GetExtension(Str).ToUpper = ".MP3" Then MsgBox(Str)
Next

Commentaire de Chris_LaFouine le 23/05/2005 13:12:37

FeelCode, je n'arrive pas à trouver cette fonction!!!

J'ai essayé ta solution Pym Corp, mais ça ne renvoie uniquement les fichiers d'un dossier, il ne parcourt pas l'arborescence entière (pas les sous dossiers).

Donc, ma source est bien utile... il y a surement une amélioration possible, surtout pour le recopitage du contenu d'un tableau dans un autre tableau! Mais c'est en cours de recherches!

Commentaire de ghamir le 30/05/2005 13:57:15

Ou avez-vous mis la classe ArrayListEx SVP?

Commentaire de Chris_LaFouine le 30/05/2005 14:49:01

La classe ArrayListEx est au tout début dsu code source, mais je me suis rendu compte qu'elle est inutile... je vais faire une madif dans pas trop longtemps!

Commentaire de Patrice99 le 21/09/2005 12:16:46

ca ne marche pas chez moi : ca ne compile pas en mode strict (pas moyen de transformer un ArrayList d'objet en Array de string) et en mode non strict, il ne parvient pas à renvoyer la liste en tant que tableau de string : elle est vide.

Commentaire de Stephane33 le 03/02/2006 22:30:18 administrateur CS

Perso chez moi ça ne marche pas, aucune valeur dans mon tableau

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Supprimer des sous répertoires [ par JCLK ] Je sais comment lister le contenu des fichiers d'un répertoire avec "Dir", mais je me demande comment lister les sous-répertoires de ce même fichier.J Lister tous les fichiers d'un répertoire [ par Adrien ] Salut !Je suis entrain de créer un programme d'installation pour une petite application et je cherche le moyen de lister tous ses fichiers contenus su Lister les fichiers d'un répertoire donné et leur taille [ par seb ] Désol', je suis nouveau sous VB...Merci de me répondre, en l'occurence, je voudrais énumérer les DLLs d'un répertoire donné (c:\Windows\System) comment lister le nom des fichiers dans un rep et les copier dans une BD [ par YOYO292 ] J'ai un repertoire c:\Rep\Data\avec des fichiers mdb dedansj'ai une base de données c:\rep\bibilio.mdbavec une table reference avec deux champs : nom, Lister Recursivement des repertoires et fichiers [ par benxen ] Hello,Je souhaierais savoir comment faire en VB pour lister les répertoires, sous-rep, sous-sous-rep, etc... d'un répertoire (ex: c:\winnt\)(de meme p listing d'un cdrom [ par benb78 ] Bonjour à tous,J' aimerai, lorsque j'introduis un cdrom dans mon lecteur, pouvoir lister tous les fichiers qu'il contient et enregistrer cette liste d listing d'un cdrom [ par benb78 ] Bonjour à tous,J' aimerai, lorsque j'introduis un cdrom dans mon lecteur, pouvoir lister tous les fichiers qu'il contient et enregistrer cette liste d Lister, Organizer de fichier (myOrganizer de Peter S. Hou. (Info demandé svp)) (TreeView) [ par bizmoute ] Bonjour,Je cherche un moyen de faire un listeur de fichier comme celui de Peter S. Hou.Disponible surhttp://www.kingofmath.com/Freeware/myorganizer/po PLEASE HELP ! besoin d'un soft pour lister des fichiers docs et les ouvrir [ par arnaud ] BONJOUR A TOUS CEUX QUI LIRONT CE MESSAGE !j'ai besoin d'une petite application (je ne sais pas programmer !)qui me permette de lister dans une listbo Lister le contenue d'un dossier (fichiers(des sous répertoires)) [ par cbjp85 ] Salut, je suis débutant et je voudrais savoir comment je pourrais faire pour lister le contenu d'un dossier et de ses sous dossier avec la fontion dir


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales