Lister tout les fichier d'un certaine extension et les mettres dans un listView

quentin0594 Messages postés 12 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 23 février 2011 - 6 févr. 2011 à 12:07
cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 - 6 févr. 2011 à 20:19
Bonjour, Je ne comprend pas pourquoi mon code ne fonctionne pas :

    Public Sub AnalizeDirectory(ByVal Directory As String, ByVal Path As String)


        Dim objFSO, objDossier
        Dim NomFichierTxt
        Dim Essai As String

        On Error Resume Next

          objDossier = objFSO.GetFolder(Directory)


        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files
                If (InStr(1, objFichier.Name, ".apk", 1) > 0) Then

                      Dim lv As ListViewItem = ListView1.Items.Add(objFichier.Name)

                    End If
            Next
        End If


Alors que quand je fais sa il focntionne (pour ajouter dans un fichier txt)

        Const ctePourLecture = 1
        Const ctePourEcrire = 2
        Const ctePourAjouter = 8

        Dim objFSO, objDossier, objFichier, objResultat
        Dim NomFichierTxt
        Dim Essai As String

        On Error Resume Next

        'C:\Document\Excel
        NomFichierTxt = "Resultat.txt"
        objFSO = CreateObject("Scripting.FileSystemObject")
        objDossier = objFSO.GetFolder(Directory)
        objResultat = objFSO.CreateTextFile((Directory & "" & NomFichierTxt), ctePourEcrire)


        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files
                If (InStr(1, objFichier.Name, ".apk", 1) > 0) Then

                    objResultat.WriteLine(objFichier.Name)
                   
                End If
            Next
        End If

        objResultat.Close()
        objResultat = Nothing
        objDossier = Nothing
        objFSO = Nothing


Pouvez-vous m'aider ??

Merci d'avance
 

4 réponses

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
6 févr. 2011 à 16:01
Bonjour,

il me semble que tu n'as pas instancier ton ListViewItem

Dim lv As new ListViewItem(objFichier.Name)
ListView1.Items.Add(lv)



@+LIM
0
quentin0594 Messages postés 12 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 23 février 2011
6 févr. 2011 à 17:27
J'ai fait :
        Dim objFSO, objDossier
        Dim NomFichierTxt
        Dim lv As New ListViewItem

        On Error Resume Next

       
        objDossier = objFSO.GetFolder(Directory)



        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files
                If (InStr(1, objFichier.Name, ".apk", 1) > 0) Then

                    lv = objFichier.Name
                    ListView1.Items.Add(lv)



                End If
            Next
        End If


Mais sa ne fonctionne toujours pas... Je suis à cour d'idées..
 
0
quentin0594 Messages postés 12 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 23 février 2011
6 févr. 2011 à 17:32
Et quand je fais :

        Dim objFSO, objDossier
        Dim NomFichierTxt
        
        On Error Resume Next

       
        objDossier = objFSO.GetFolder(Directory)



        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files
                If (InStr(1, objFichier.Name, ".apk", 1) > 0) Then

                  Dim lv As new ListViewItem(objFichier.Name)
                  ListView1.Items.Add(lv) 



                End If
            Next
        End If


Il sort une erreure :
Erreur 1
La résolution de surcharge a échoué, car aucun 'New' accessible ne peut être appelé sans conversion restrictive :
'Public Sub New(group As System.Windows.Forms.ListViewGroup)' : L'argument qui correspond au paramètre 'group' passe de 'Object' à 'System.Windows.Forms.ListViewGroup'.
'Public Sub New(items() As String)' : L'argument qui correspond au paramètre 'items' passe de 'Object' à 'Tableau à 1 dimension(s) de String'.
'Public Sub New(text As String)' : L'argument qui correspond au paramètre 'text' passe de 'Object' à 'String'. C:\Users\Quentin\documents\visual studio 2010\Projects\AndroRoms - Cook\AndroRoms - Cook\AndroRomHome.vb 80 13 AndroRoms - Cook



 
0
cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
6 févr. 2011 à 20:19
Salut

rajoute un .tostring

Dim lv As new ListViewItem(objFichier.Name.tostring)
ListView1.Items.Add(lv)

Par contre je te conseille d'écrire en .net

Dim i As Integer
Dim j As Integer
'Récupère tous les répertoires de C:\
Dim Rep() As String = IO.Directory.GetDirectories("C:")
For i = 0 To Rep.Length - 1
'Pour chaque répertoire de C:\ on ne filtre que les fichiers .txt
Dim fichier() As String = IO.Directory.GetFiles(Rep(i), "*.txt")
'Pour chaque fichier trouvé on les ajoute dans la listview
For j = 0 To fichier.Length - 1
Dim lv As New ListViewItem(fichier(j))
ListView1.Items.Add(lv)
Next
Next

@+LIM
0
Rejoignez-nous