Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB2010 - VB2015 | 26.10.23 |
Ermitteln, in welchen Foldern sich eine Datei befindet Die Funktion ermittelt alle Folder, in denen sich eine spezielle Datei befindet. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 1.416 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Ausgangspunkt ist eine Datei, deren Name inkl. Extension bekannt ist.
Die folgende Funktion ermittelt alle Folder, in denen die Datei gespeichert ist und gibt die Foldernamen in einer String-Liste aus.
Die Funktion:
''' <summary> ''' Suchen der Pfade eines Files ''' </summary> ''' <param name="rootFolderPath">der Ausgangspfad</param> ''' <param name="fName">der Filename inkl. Extension</param> ''' <param name="fExt">die File-Extension</param> ''' <returns></returns> Public Function FindFilePathsByFileName(rootFolderPath As String, fName As String, fExt As String) _ As String() Dim i, j As Integer Dim fileLocation As DirectoryInfo Dim fList() As String Dim subDirs() As String = Directory.GetDirectories(rootFolderPath) j = 0 For i = 0 To subDirs.Length - 1 Try fileLocation = New DirectoryInfo(subDirs(i)) For Each Direct In fileLocation.GetFiles() If (Direct IsNot Nothing) Then If (Path.GetExtension(Direct.ToString.ToLower) = fExt) Then ' Debug.Print(Direct.FullName + vbTab + Direct.Name) If Direct.Name = fName Then ReDim Preserve fList(j) fList(j) = Path.GetDirectoryName(Direct.FullName) j += 1 End If End If End If Next Catch ex As Exception End Try Next Return fList End Function
Aufruf (Beispiel):
Dim pList() As String = FindFilePathsByFileName("C:Windows", "scrnsave.scr", ".scr")