Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1768to1772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ganzer PC auf Datei suchen

ganzer PC auf Datei suchen
10.07.2020 13:18:19
Eberhard
Guten Tag
Vielleicht finde ich auf diesem Weg eine Lösung die Funktioniert! Mein PC arbeitet mit 64 Bit. Nun möchte ich über ein Eingabefeld (Textfeld) einen Datei Name eingeben. Anschließend soll der der ganze PC sowie alle vorhandene Laufwerke durchsucht werden. Wurde die Datei gefunden, sollte der Pfad wo sich die Datei befindet in einer msgBox anzeigen.
Vielleicht hat mir da jemand eine Lösung für 64 Bit. Vielen Dank. Gruss Daniel

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ganzer PC auf Datei suchen
10.07.2020 13:33:31
EtoPHG
Hallo Eberhard,
Was hat das mit 64Bit zu tun? Nichts!
Was sind vorhandene Laufwerke? In nicht vorhandenen kann ja wohl schwerlich suchen!
Sollen nur lokale Laufwerke durchsucht werden? Auch ggf. USB Sticks/Laufwerke?
Was ist für Dich ein Datei Name? Gehört dazu auch der Dateityp? Muss der Name genau mit dem eingegebenen Begriff übereinstimmen, oder nur mit einem Teil des Dateinamens?
Mithilfe der Recherche wirst du in diesem Forum sicher fündig!
Gruess Hansueli
AW: ganzer PC auf Datei suchen
10.07.2020 15:44:55
Eberhard
Hallo Hansueli
Die Frage mit den Bit kann ich auch nicht beantworten. Bei den Beispielen welche ich gefunden haben, erscheint immer eine Fehlermeldung.
Vorhandene Laufwerke sind für mich zum Beispiel Laufwerk C:\Festplatte, Laufwerk D:\Festplatte Nr. 1, Laufwerk H:\USB Stick, usw. Ein Dateiname ist für mich zum Beispiel "Lagerort" (ohne Dateityp). Gross & Kleinschreibung sollte ignoriert werden. Cool wäre es, wenn es die Datei Lagerort auch findet, wenn ich zum Beispiel Lager*.* eingebe. Hoffe die Angaben helfen weiter! Gruss Daniel
Anzeige
Und warum nicht mit dem Explorer? wozu Excel? owT
10.07.2020 16:19:31
EtoPHG

AW: ganzer PC auf Datei suchen
10.07.2020 16:24:22
Daniel
Hi
hier mal ein Beispielcode, der alle Laufwerke, die über einen einzelnen Laufwerksbuchstaben ansprechbar sind, und alle Verzeichnisse durchsucht.
Das ist jetzt aber nicht das schnellste und könnte etwas dauern.
im Select Case-Teil kannst du bestimmte Verzeichnisse von der Suche ausnehmen (z.B. das Windows-Verzeichnis mit sehr vielen Dateien), wenn dort der Suchbegriff nicht vorkommen kann.
Sub test()
Dim Suchbegriff As String
Suchbegriff = "180"
Dim L As Long
Dim LW As String
Dim Verzeichnisse
Dim V As Long
Dim Erg As String
Dim Dat As String
Dim Datei As String
Suchbegriff = "*" & LCase(Suchbegriff) & "*"
For L = Asc("C") To Asc("Z")
LW = Chr(L) & ":\"
If Dir(LW & "*", vbDirectory)  "" Then
ReDim Verzeichnisse(0) As String
Verzeichnisse(0) = LW
V = 0
Do Until V > UBound(Verzeichnisse)
Dat = Dir(Verzeichnisse(V) & "*", vbDirectory)
Do Until Dat = ""
If Left(Dat, 1)  "." Then
Datei = Verzeichnisse(V) & Dat
If (GetAttr(Datei) And vbDirectory) = vbDirectory Then
ReDim Preserve Verzeichnisse(UBound(Verzeichnisse) + 1)
Select Case Dat
Case "Windows" 'systemverzeichnisse nicht durchsuchen
Case Else
Verzeichnisse(UBound(Verzeichnisse)) = Datei & "\"
End Select
Else
If LCase(Dat) Like Suchbegriff Then
If InStr(Erg & vbLf, vbLf & Verzeichnisse(V) & vbLf) = 0 Then
Erg = Erg & vbLf & Verzeichnisse(V)
End If
End If
End If
End If
Dat = Dir()
Loop
V = V + 1
Loop
End If
Next
MsgBox Suchbegriff & " gefunden in:" & Erg
End Sub
und wie gesagt ist nicht das schnellste.
Probleme könnte es ggf noch bei geschützten Verzeichnissen geben.
das habe ich noch nicht ausgetestet.
Gruß Daniel
Anzeige
AW: ganzer PC auf Datei suchen
10.07.2020 16:43:46
Eberhard
Hallo Daniel
Habe es mal bei mir versucht. Da kommt ein Laufzeitfehler '52' Dateiname oder Nummer Falsch.
Und zwar bei der Zeile (siehe unten)!
Dat = Dir(Verzeichnisse(V) & "*", vbDirectory)
Gruss Daniel
AW: ganzer PC auf Datei suchen
10.07.2020 16:50:16
Daniel
Welches Verzeichnis wird denn grad durchsucht, dh welchen Wert haben V und Verzeichnisse(V)?
Hast du Zugriffsrechte auf das Verzeichnis?
Stell den Ordnernamen beim Select Case ein so dass er nicht durchsucht wird, läuft der Code dann weiter?
Gruß Daniel
AW: ganzer PC auf Datei suchen
10.07.2020 17:05:42
Daniel
oder so, damit werden Verzeichnisse die einen Fehler erzeugen, übersprungen:
Sub test()
Dim Suchbegriff As String
Suchbegriff = "lager"
Dim L As Long
Dim LW As String
Dim Verzeichnisse
Dim V As Long
Dim Erg As String
Dim Dat As String
Dim Datei As String
Dim Err2 As Long
Suchbegriff = "*" & LCase(Suchbegriff) & "*"
For L = Asc("C") To Asc("Z")
LW = Chr(L) & ":\"
If Dir(LW & "*", vbDirectory)  "" Then
ReDim Verzeichnisse(0) As String
Verzeichnisse(0) = LW
V = 0
Do Until V > UBound(Verzeichnisse)
Err = 0
On Error Resume Next
Dat = Dir(Verzeichnisse(V) & "*", vbDirectory)
Err2 = Err
On Error GoTo 0
If Err2 = 0 Then
Do Until Dat = ""
If Left(Dat, 1)  "." Then
Datei = Verzeichnisse(V) & Dat
If (GetAttr(Datei) And vbDirectory) = vbDirectory Then
ReDim Preserve Verzeichnisse(UBound(Verzeichnisse) + 1)
Select Case Dat
Case "Windows" 'systemverzeichnisse nicht durchsuchen
Case Else
Verzeichnisse(UBound(Verzeichnisse)) = Datei & "\"
End Select
Else
If LCase(Dat) Like Suchbegriff Then
If InStr(Erg & vbLf, vbLf & Verzeichnisse(V) & vbLf) = 0 Then
Erg = Erg & vbLf & Verzeichnisse(V)
End If
End If
End If
End If
Dat = Dir()
Loop
End If
V = V + 1
Loop
End If
Next
MsgBox Suchbegriff & " gefunden in:" & Erg
End Sub
Gruß Daniel
Anzeige
AW: ganzer PC auf Datei suchen
10.07.2020 17:51:13
Eberhard
Hallo Daniel
Der Laufzeitfehler '52' Dateiname oder-nummer falsch kommt leider bei der Zeile
If (GetAttr(Datei) And vbDirectory) = vbDirectory Then

immer noch! :-(
Gruss Daniel
AW: ganzer PC auf Datei suchen
10.07.2020 16:48:05
volti
Hallo Eberhard,
hier noch eine Variante.
Hier kannst Du Laufwerke oder Verzeichnisse in einer Variablen festlegen. Alles komplett zu durchsuchen, dauert schon sehr lange. Je nachdem, was Du eigentlich machen möchtest, ist eine gezielte Einschränkung vielleicht auch nicht schlecht:
PS: Wenn die Pfadvorgabe leer bleibt, kannst Du einen Pfad aussuchen...
[+][-]
Option Explicit Option Compare Text Dim gsPathFilename As String Sub FileSearch() Dim sFilename As String, sPath As String, sArr() As String Dim i As Integer sPath = "C:&bsol;Users&bsol;voltm&bsol;Desktop,D:&bsol;Pictures" 'Gewünschte Laufwerke, Pfade oder leer lassen If sPath <> "" Then sArr = Split(sPath, ",") 'Datei incl. Pfad oder Datei und anschließend Start-Pfad abfragen sFilename = InputBox("Bitte den Dateinamen eingeben!", "Datei suchen und öffnen", sFilename) If StrPtr(sFilename) = 0 Then Exit Sub 'Abbruch gewählt If sFilename = "" Then Exit Sub 'Nix eingegeben gsPathFilename = "" If Not sFilename Like "*:*&bsol;*" And sPath = "" Then 'Kein vollständiger Dateipfad With Application.FileDialog(msoFileDialogFolderPicker) If .Show <> 0 Then gsPathFilename = "" 'Globalen Dateinamen leeren GetFile .SelectedItems(1), sFilename End If End With Else For i = 0 To UBound(sArr) GetFile sArr(i), sFilename If gsPathFilename <> "" Then Exit For Next i End If If gsPathFilename = "" Then MsgBox "Es konnte keine entsprechende Datei gefunden werden!", vbCritical, "Dateisuche" Else MsgBox "Datei gefunden in" & vbLf & gsPathFilename, vbCritical, "Dateisuche" End If End Sub Sub GetFile(sPathname As String, sSearchFile As String) Dim oFile As Object, oDir As Object If gsPathFilename <> "" Then Exit Sub 'Suchbegriff gefunden=>raus On Error Resume Next With CreateObject("scripting.filesystemobject").GetFolder(sPathname) 'Ordner durchsuchen For Each oFile In .Files If Err = 0 Then If oFile.Name Like sSearchFile & "*" Then gsPathFilename = sPathname & "&bsol;" & oFile.Name Exit Sub End If End If Next 'Unterordner durchsuchen For Each oDir In .Subfolders GetFile sPathname & "&bsol;" & oDir.Name, sSearchFile Next End With End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: ganzer PC auf Datei suchen
10.07.2020 16:55:59
Nepumuk
Hallo Eberhard,
damit durchsuchst du den kompletten Rechner:
Option Explicit

Private Declare PtrSafe Function SearchTreeForFile Lib "imagehlp.dll" ( _
    ByVal RootPath As String, _
    ByVal InputPathName As String, _
    ByVal InputPathBuffer As String) As Long

Private Const MAX_PATH As Long = 260&

Private Function FindFile(ByVal pvstrFilename As String) As String
    
    Dim objFileSystemObject As Object
    Dim objDrives As Object, objDrive As Object
    Dim lngRetun As Long
    Dim strInputPathBuffer As String * MAX_PATH
    
    pvstrFilename = "*" & pvstrFilename & "*"
    
    Set objFileSystemObject = CreateObject(Class:="Scripting.FileSystemObject")
    
    Set objDrives = objFileSystemObject.Drives
    
    For Each objDrive In objDrives
        
        If objDrive.IsReady Then
            
            lngRetun = SearchTreeForFile(objDrive.Path, pvstrFilename, strInputPathBuffer)
            
            If lngRetun = 1 Then
                
                FindFile = Left$(strInputPathBuffer, InStr(strInputPathBuffer, vbNullChar) - 1)
                
                Exit For
                
            End If
        End If
    Next
    
    Set objDrive = Nothing
    Set objDrives = Nothing
    Set objFileSystemObject = Nothing
    
End Function

Public Sub test()
    Dim strFilename As String, strReturn As String
    strFilename = "array"
    strReturn = FindFile(strFilename)
    If strReturn = vbNullString Then
        Call MsgBox("Datei ''" & strFilename & "'' nicht gefunden.", vbExclamation, "Hinweis")
    Else
        Call MsgBox(strReturn, vbInformation, "Information")
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: ganzer PC auf Datei suchen
11.07.2020 17:22:28
Eberhard
Hallo Nepumuk
Danke für Dein Vorschlag. Dies funktioniert! Doch gibt es mehrere Dateien mit dem selben Namen. Schön wäre es, wenn es mir eine Auflistung sämtlicher Dateien anzeigen würde! Wäre das noch möglich? Gruss Daniel
AW: Raider in disguise ? (owT)
11.07.2020 17:45:34
EtoPHG

AW: ganzer PC auf Datei suchen
12.07.2020 12:01:37
Eberhard
Hallo Nepumuk
Hey Super! Genau das was ich gesucht habe! Vielen, vielen Dank & einen schönen Sonntag. Gruss Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige