12. februar 2004 - 10:03Der er
4 kommentarer og 1 løsning
Gennemse et helt folderhiraki for en bestemt filtype
Hej.
Jeg er ved at lave et lille stykke software, hvor jeg hvert minut ønsker at gennemse en folderstruktur (af helt ukendt opbygning) for alle .tiff og .jpeg filer. Det eneste jeg kender er navnet på den folder der indeholder hele folderstrukturen.
Jeg er interesseret i at få stien til de foldere der indeholder .tiff. eller .jpeg filer, da jeg skal behandle alt indhold i de foldere der indeholder den enkelte filtype.
Smid en Filelist ind på din form, kald den FileList1, og brug følgende sub
Sub GetTextFiles()
Dim FS As FileSearch Dim FilePath As String Dim i As Integer Dim filelist() Const Filespec = "*.jpeg" 'udfyldes af bruger FilePath = "C:\" 'udfyldes af bruger Set FS = Application.FileSearch With FS .LookIn = FilePath .Filename = Filespec .SearchSubFolders = True .Execute If .FoundFiles.Count = 0 Then MsgBox ("Ingen filer fundet") Exit Sub End If ReDim filelist(.FoundFiles.Count) For i = 1 To .FoundFiles.Count 'filelist(i) = Split(.FoundFiles(i), Application.PathSeparator) filelist(i) = FoundFiles(i) Next End With End Sub
Hvis du ikke vil bruge Application.FileSearch, kan du lave din egen rekursive søgerutine - den kræver FSO, så du skal tilføje reference til MicroSoft Scripting Runtime:
Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject FindFile pattern, fso.GetFolder(mappe)
Private Sub FindFile(pattern As String, folder As Scripting.folder) Dim tmpFolder As Scripting.folder Dim tmpFile As Scripting.File If folder.SubFolders.Count > 0 Then For Each tmpFolder In folder.SubFolders FindFile pattern, tmpFolder Next End If If folder.Files.Count > 0 Then For Each tmpFile In folder.Files If InStr(1, tmpFile.Name, pattern) Then Debug.Print tmpFile.Path & "\" & tmpFile.Name End If Next End If End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.