IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Plusieurs extensions pour GetFiles


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Par défaut Plusieurs extensions pour GetFiles
    Bonsoir,

    Après de multiples recherches sur le net je n'ai pas trouvé de réponse convaincante à ma question, je me suis donc décidé à poster sur un forum !
    (Désolé si le sujet à déjà été évoqué sur le forum, j'ai pourtant cherché avant)

    J'ai une liste déroulante avec pour valeur :
    0. Tout
    1. Images
    2. Musiques
    3. Documents

    Suivant la valeur sélectionné je ne voudrais afficher dans une listbox soit tous les documents ou que les images ect...

    Voici l'extrait de mon code :

    L_DSource est une listbox
    dir contient le chemin du dossier sélectionné grâce à l'objet FolderBrowserDialog

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case CB_TypeSource.SelectedIndex
                Case 0
                    L_DSource.DataSource = dir.GetFiles("*.*")
                Case 1
                    L_DSource.DataSource = dir.GetFiles("*.jpg")
                Case 2
                    L_DSource.DataSource = dir.GetFiles("*.mp3")
                Case 3
                    L_DSource.DataSource = dir.GetFiles("*.doc")
     End Select
    J'ai déjà essayé de séparer les extensions par des ";" "," "|" rien n'y fait.

    Lors de mes recherches certaines personnes disaient que l'objet ne prenait pas en compte plusieurs extensions et donc qu'il fallait se débrouiller d'une autre façon. Mais je ne sais pas non plus comment faire. Quelqu'un peut il m'aider, s'il vous plaît ?

    Merci d'avance pour ceux qui se pencheront sur mon problème !

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Il faut gérer ce cas soi même en effet, mais ce n'est pas très compliqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Shared Class FileSearch
     
        Public Shared Function GetFiles(ByVal path As String, ByVal extensions As String()) As String()
            Return GetFiles(path, extensions, SearchOption.TopDirectoryOnly)
        End Function
     
        Public Shared Function GetFiles(ByVal path As String, ByVal extensions As String(), ByVal searchOptions As SearchOption) As String()
            Dim files As List(Of String) = New List(Of String)()
            For Each extension As String In extensions
                files.AddRange(Directory.GetFiles(path, extension, searchOptions))
            Next
            Return files.ToArray()
        End Function
     
    End Class
    A tester car je suis passé par un convertisseur pour générer le code.

    A l'utilisation, en reprenant ton exemple, cela donnerait quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim extensions As String()
     
    Select CB_TypeSource.SelectedIndex
       Case 1
           extensions = New String() {"*.jpg", "*.bmp", "*.png"}
           Exit Select
       Case 2
           extensions = New String() {"*.mp3", "*.ogg", "*.wav"}
           Exit Select
       Case 3
           extensions = New String() {"*.txt", "*.rtf", "*.doc", "*.docx"}
           Exit Select
       Case Else
           extensions = New String() {"*.*"}
    End Select
     
    L_DSource.DataSource = FileSearch.GetFiles(dir.FullName, extensions)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Par défaut
    Bonjour,

    Ça fonctionne très bien j'ai juste du enlever le Shared class.

    Merci beaucoup pour l'aide et d'avoir répondu aussi vite !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Par défaut
    Bonsoir,

    Euh en faite je reviens parce que je viens de remarquer un truc, dans ma liste box ça m'affiche le chemin complet du fichier plus le nom du fichier et son extension.

    Seulement je voudrais que seul le nom du fichier et son extension s'affiche dans ma liste box.

    Ça doit être un truc tout bête à changer mais j'arrive pas à trouver.

    Donc j'aurais encore besoin d'un petit coup de main s'il vous plaît !

  5. #5
    Membre expérimenté Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Par défaut
    Pour récupérer le nom du fichier sans le chemin utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomDuFichier = System.IO.Path.GetFileName(chemin)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Par défaut
    Si je fais ça je ne peux pas récupérer le nom du fichier en fonction de son extension comme il n'y a en paramètre que le chemin

Discussions similaires

  1. Plusieurs extensions pour 1 site
    Par lolaalol dans le forum Webmarketing
    Réponses: 4
    Dernier message: 20/05/2014, 15h43
  2. [CS3] Plusieurs extensions pour les images
    Par HAbroc dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 27/06/2009, 22h18
  3. creer une extension pour exchange
    Par simoryl dans le forum C++
    Réponses: 2
    Dernier message: 23/03/2005, 11h47
  4. Plusieurs vues pour le même objet
    Par nicolas66 dans le forum OpenGL
    Réponses: 4
    Dernier message: 25/10/2004, 10h27
  5. Réponses: 2
    Dernier message: 05/07/2004, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo