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 :

Utiliser GetFiles pour selectionner une extension precise en VB.net [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 20
    Points
    20
    Par défaut Utiliser GetFiles pour selectionner une extension precise en VB.net
    Salut!

    J'ai besoin d'un coup de la part de la communauté pour m'aider à résoudre un problème sur le quel je me penche depuis hier.
    J'ai cherché du mieux que je peux des solutions pour résoudre ce problème dans ce forum et un peu partout.

    J'utilise Dim fileNames = My.Computer.FileSystem.GetFiles(folderPath, FileIO.SearchOption.SearchTopLevelOnly, "*.ods") pour récupérer uniquement des fichiers avec des extensions ods dans un dossier quelconque.
    Mais le soucis est que même les fichiers avec les extensions *.odsxxx sont aussi sélectionner.

    Merci d'avance de m'aider à sélectionner uniquement les ods.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 274
    Points : 237
    Points
    237
    Par défaut
    Bonsoir,

    vous pouvez faire ceci pour récupérer juste l'extension fichier *.ods :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim folder As New FolderBrowserDialog With {
                .Description = "Veuillez selectionner un dossier !",
                .ShowNewFolderButton = False,
                .RootFolder = Environment.SpecialFolder.Desktop}
            If folder.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = folder.SelectedPath
            Else : Exit Sub
            End If
        End Sub
     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            If Not String.IsNullOrEmpty(TextBox1.Text) Then
                Dim filenames As List(Of String) = FindFiles(TextBox1.Text, "*.ods", CheckBox1.Checked) 'checkbox1 rechercher soit par un seul dossier ou mutiple dossier le fichier '.ods
                RichTextBox1.Clear()
                For Each filename As String In filenames
                        RichTextBox1.AppendText(filename & Environment.NewLine)
                Next filename
            End If
        End Sub
    Private Function FindFiles(Folder As String, patterns As String, search As Boolean) As List(Of String)
            Dim files As New List(Of String)()
            Dim search_option As SearchOption = SearchOption.TopDirectoryOnly
            If search Then search_option = SearchOption.AllDirectories
            For Each pattern As String In patterns
                For Each filename As String In Directory.GetFiles(Folder, pattern, search_option).Where(Function(s) s.EndsWith(patterns.Substring(1, patterns.Length - 1), StringComparison.OrdinalIgnoreCase))
                    If Not files.Contains(filename) Then files.Add(filename)
                Next filename
            Next pattern
            files.Sort()
            Return files
        End Function
    pour info : je l'ai déjà essayer il fonctionne très bien. cordialement

  3. #3
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Je n'ai sans doute pas très bien compris la question mais s'il s'agit de récupérer les noms des fichiers avec extension ods, ceci suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Dim MesFichiers() As String = System.IO.Directory.GetFiles(CheminDuDossier, "*.ods")  ' par exemple :   ... =System.IO.Directory.GetFiles("D:\Tmp", "*.ods")
    ...

  4. #4
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Miska59 Voir le message
    Bonsoir,

    vous pouvez faire ceci pour récupérer juste l'extension fichier *.ods :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim folder As New FolderBrowserDialog With {
                .Description = "Veuillez selectionner un dossier !",
                .ShowNewFolderButton = False,
                .RootFolder = Environment.SpecialFolder.Desktop}
            If folder.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = folder.SelectedPath
            Else : Exit Sub
            End If
        End Sub
     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            If Not String.IsNullOrEmpty(TextBox1.Text) Then
                Dim filenames As List(Of String) = FindFiles(TextBox1.Text, "*.ods", CheckBox1.Checked) 'checkbox1 rechercher soit par un seul dossier ou mutiple dossier le fichier '.ods
                RichTextBox1.Clear()
                For Each filename As String In filenames
                        RichTextBox1.AppendText(filename & Environment.NewLine)
                Next filename
            End If
        End Sub
    Private Function FindFiles(Folder As String, patterns As String, search As Boolean) As List(Of String)
            Dim files As New List(Of String)()
            Dim search_option As SearchOption = SearchOption.TopDirectoryOnly
            If search Then search_option = SearchOption.AllDirectories
            For Each pattern As String In patterns
                For Each filename As String In Directory.GetFiles(Folder, pattern, search_option).Where(Function(s) s.EndsWith(patterns.Substring(1, patterns.Length - 1), StringComparison.OrdinalIgnoreCase))
                    If Not files.Contains(filename) Then files.Add(filename)
                Next filename
            Next pattern
            files.Sort()
            Return files
        End Function
    pour info : je l'ai déjà essayer il fonctionne très bien. cordialement

    Miska59, je ne pensais pas que ça allais être un longue code comme celui que tu viens de proposé.
    Toutefois ceci résous mon problème.

    Cette partie est celle que je ne comprends pas encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      For Each pattern As String In patterns
          For Each filename As String In Directory.GetFiles(Folder, pattern, search_option).Where(Function(s) s.EndsWith(patterns.Substring(1, patterns.Length - 1),   StringComparison.OrdinalIgnoreCase))
              If Not files.Contains(filename) Then files.Add(filename)
                Next filename
            Next pattern
            files.Sort()
    Mon problème est résolu.

    Merci Miska59

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Focus] Probleme pour selectionner une JInternalFrame
    Par bulbo dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/05/2009, 13h22
  2. Utiliser l'adresse de deux cellules pour selectionner une rangé
    Par Gaelb dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 22/08/2008, 15h26
  3. Réponses: 1
    Dernier message: 18/03/2007, 17h52
  4. la fonction pour connaitre une extension de fichier ?
    Par Zen_Fou dans le forum Langage
    Réponses: 6
    Dernier message: 11/05/2006, 16h30

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