On voit que l'extension des fichiers dans un ListView

Résolu
Signaler
Messages postés
61
Date d'inscription
samedi 19 février 2005
Statut
Membre
Dernière intervention
18 novembre 2012
-
Messages postés
61
Date d'inscription
samedi 19 février 2005
Statut
Membre
Dernière intervention
18 novembre 2012
-
Bonjour à tous,

Dans le fond de cette fonction, il y a du code d'un ListView, j'arrive à voir les chemins, mais pas le nom du fichier, seulement les extensions, si quelqu'un pouvait m'aider, ça m'arrangerait fortement.
D'avance merci

Guy FALESSE

Sub RecurseTree(CurrentPath As String)
Dim intN As Integer, intDirectory As Integer, intlngch As Integer
Dim strFileName As String, strDirectoryList() As String, strtemp As String
Dim LaDate As Date, leMax
'Lister d'abord tous les fichiers normaux de ce répertoire
strFileName = Dir(CurrentPath)
Do While strFileName <> ""
'
intlngch = Len(strFileName) - 2
If intlngch > 3 Then
'Recuperation de l'extension du fichier dasn la chaine strtemp
strtemp = Mid(strFileName, intlngch, 3) If (strtemp "zip" Or strtemp "mdb" Or strtemp = "rar" Or strtemp = "ace" Or strtemp = "exe") Then
strFileName = Mid(strFileName, 1, (intlngch - 2))
'pour le stockage dans une base access
rc.AddNew
rc![ID] = Val(Me.txtID)
rc![File_Name] = strFileName & "." & strtemp
rc![File_Path] = CurrentPath
rc![Taille] = FileLen(CurrentPath & strFileName & "." & strtemp) & " bytes"
rc![DateCréation] = FileDateTime(CurrentPath & strFileName & "." & strtemp)
rc![MotClé] = Me.txtMotClé
rc![NCase] = Val(Me.txtNCase)
rc![Observation] = Me.txtObservation
rc.Update

End If
End If
strFileName = Dir
Loop
'Puis construire une liste temporaire des sous-répertoires
strFileName = LCase(Dir(CurrentPath, vbDirectory))
Do While strFileName <> ""
'Ignorer le répertoire en cours, le répertoire parent, et
'le fichier page de Windows NT
If strFileName <> "." And strFileName <> ".." And _
strFileName <> "pagefile.sys" Then
'Ignorer les fichiers qui ne sont pas des répertoires
If GetAttr(CurrentPath & strFileName) _
And vbDirectory Then
intDirectory = intDirectory + 1
ReDim Preserve strDirectoryList(intDirectory)
strDirectoryList(intDirectory) = CurrentPath _
& strFileName
End If
End If
strFileName = Dir
'Traiter les autres événements
DoEvents
Loop
'Traiter récursivement tous les répertoires
For intN = 1 To intDirectory
RecurseTree strDirectoryList(intN) & ""
Next intN
'=========================================================================
Me.ListView1.ListItems.Add , , strFileName & "." & strtemp
Me.ListView1.ListItems(Me.ListView1.ListItems.Count).ListSubItems.Add , , CurrentPath
Me.ListView1.View = lvwReport
Me.ListView1.FullRowSelect = True
End Sub

Guy FALESSE

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut

bah simplement parce que strFileName est un répertoire, pas un fichier, c'est ce que tu as écrit !
strFileName = LCase(Dir(CurrentPath, vbDirectory))

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
Messages postés
61
Date d'inscription
samedi 19 février 2005
Statut
Membre
Dernière intervention
18 novembre 2012

Salut Jack,

C'est bien gentil d'avoir mis la main sur mon erreur, problème, comment dois-je la corriger?
C'est le but du jeu, sinon, dans longtemps, ke serai encore au même point, j'apprends tout doucement.
D'avance merci

Guy FALESSE
3
Messages postés
61
Date d'inscription
samedi 19 février 2005
Statut
Membre
Dernière intervention
18 novembre 2012

Re

Voilà, j'ai déplacé ces 2 lignes juste en-dessous de VC Update et ça fonctionne.

Me.ListView1.ListItems.Add , , strFileName & "." & strtemp
Me.ListView1.ListItems(Me.ListView1.ListItems.Count).ListSubItems.Add , , CurrentPath

Qui cherche trouve mais parfois, c'est vraiment la galère.
Guy FALESSE
3