Question disques dur

MatthieuFourcade Messages postés 32 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 avril 2009 - 5 mars 2003 à 20:22
MatthieuFourcade Messages postés 32 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 avril 2009 - 9 mars 2003 à 18:25
Bonjour j'aimerai savoir comment faire pour rechercher tout les fichiers d'une extension bien precise genre (*.mp3) présent sur le disque dur et stocké les noms des fichiers dans une filelistbox . Mais la recherche pas seulement sur c: mais sur tout les disques durs locaux genre c: + d: + e: + f: si il en existe et un check box avec comme option pour rajouter en plus la recherche sur les lecteurs (cd rom, dvd, graveur) ....
MERCI BCP car je suis assez dépassé là !

http://mwsgames.free.fr

Matthew

3 réponses

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
5 mars 2003 à 22:31
Attention c'est long... PARTIE A:

Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
(ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
(ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long

Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_SYSTEM = &H4

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Private Function TrimNull(StrChaine As String) As String
On Error Resume Next
Dim Posi As Integer
Posi = InStr(StrChaine, Chr(0))
If Posi Then
TrimNull = Left(StrChaine, Posi - 1)
Exit Function
End If
TrimNull = StrChaine
End Function

<center>http://www.fredlynx.com
</center>
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
5 mars 2003 à 22:32
Attention c'est long... PARTIE B:

Public Function GetAllDrivesFolders(Dossier As String, IntSubDir As Integer) As Integer
Dim wfd As WIN32_FIND_DATA
Dim hFichier As Long
Dim StrFichier As String
Dim StrChemin As String

'Récupération du chemin de Base
StrChemin = Dossier
If Right(StrChemin, 1) <> "" Then StrChemin = StrChemin & ""
'Recherche de la première donnée correspondante
'WFD.dwFileAttributes = vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbVolume Or vbDirectory 'Or vbArchive
wfd.dwFileAttributes = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_COMPRESSED Or FILE_ATTRIBUTE_DIRECTORY Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
hFichier = FindFirstFile(StrChemin & "*.*" & Chr(0), wfd)

If hFichier <> -1 Then
Do
'Extraction du nom du Dossier
StrFichier = TrimNull(wfd.cFileName)
'Teste si le résultat est bien un répertoire
If (wfd.dwFileAttributes And vbDirectory) Then
'Teste si c'est un répertoire "valide"
If (StrFichier <> ".") And (StrFichier <> "..") And (IntSubDir = 1) Then
GetAllDrivesFolders StrChemin & StrFichier, IntSubDir
End If
ElseIf LCase(ExtractExt(StrFichier)) = ".mp3" Then
Debug.Print StrFichier, StrChemin
End If
'Recherche du dossier suivant
' WFD.dwFileAttributes = vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbVolume Or vbDirectory 'Or vbArchive
wfd.dwFileAttributes = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_COMPRESSED Or FILE_ATTRIBUTE_DIRECTORY Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
Loop While FindNextFile(hFichier, wfd)
End If
'Fermeture
Call FindClose(hFichier)
End Function

Appel de la fonction :::

GetAllDrivesFolders "Poste de travail", 1

<center>http://www.fredlynx.com
</center>
0
MatthieuFourcade Messages postés 32 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 avril 2009
9 mars 2003 à 18:25
SAlut merci bcp !!! mais je suis désolé mais je suis pas très fort et je comprends vraiment pas le code donc est ce que tu pourrais me dire se qu'il faut que j'écrive dans un module ce qui doit aller dans la forme ainsi que les evenements et les controle a ajouter (text.box, list.box) et aussi ou on choist l'extension.
Merci bcp ca serai super smpa si tu avais le temps.

http://mwsgames.free.fr

Matthew
0
Rejoignez-nous