BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- VB Laufwerke nach Dateien durchsuchen (http://www.black-board.net/thread.php?threadid=10136)


Geschrieben von kilone am 02.02.2003 um 11:41:

  Laufwerke nach Dateien durchsuchen

Hi ich hoffe mir kann da jemand helfen. Wie muss ich das machen wenn ich z.B. die Datei test.txt suche? Es sollen alle Laufwerke durchsut werden.



Geschrieben von Medusa am 02.02.2003 um 11:57:

 

Du erstellst eine FileList-, DirList- und DriveList-Box.
Kannst du auch im Code machen, ich weiß aber net wie des geht großes Grinsen

Nun nimmst du den 1. Eintrag der Drive-List (1. Laufwerk) und weißt dem DirList den Pfad zu.

Dann weißt du den aktuellen Pfad von DirList dem Filelist zu. Und guckst ob das File dabei is.
Wenn net, dann guckst du ob der aktuelle Ordner im DirList Unterordner hat. Wenn ja, dann weißt du dem DirList der Reihe nach einfach alle seine Einträge als Pfad zu. Und machst bei Absatz 3 wieder weiter.
Dabei solltest du den immer den Letzen Ordner "merken", dass du wieder dort zurück kannst.

Und wenn alle Ordner gecheckt wurden, machst du das selbe mit DriveList-Eintrag 2, bis zum letzten.



Geschrieben von kilone am 02.02.2003 um 13:12:

 

big thx Augenzwinkern Augenzwinkern



Geschrieben von Lektor am 02.02.2003 um 15:29:

 

Hi kilone und Medusa!


Die Idee, ist die richtige, hier nen paar dezente Lösungsansätze!
(Hat mich Medusa aber nicht drauf gebracht, hatte ich schon vorher erstellt. Trotzdem Gratulation Medusa, diesmal richtigen Lösungsansatz gefunden.)

Ich denk mal, daß es über die FileExists-Methode und folgende zu realisieren ist.

Syntax

Objekt.FileExists(Dateispez.)

Objekt: Ist immer der Name eines FileSystemObject.
Dateispez.: Der Name der Datei, von der Du wissen möchtest, ob sie existiert.
Du must entweder eine absolute oder relative Pfadangabe machen, wenn man davon ausgeht, daß die Datei nicht im aktuellen Ordner vorhanden ist.

Rückgabe; True or False.

Beispiel:

code:
1:
2:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.FileExists("c:\test.txt")


Oder GetFile-Methode

Beispiel:

code:
1:
2:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\test.txt")



Als Anregung noch die Path-Eigenschaft und nen Code-Bsp. für Drives Auflistung!

Beschreibung

Gibt den Pfad einer angegebenen Datei, eines angegebenen Ordners oder Laufwerks zurück.

Syntax

Objekt.Path

Das Objekt ist immer ein File-, Folder- oder Drive-Objekt.

Anmerkungen

Bei Laufwerkbuchstaben ist das Stammlaufwerk nicht enthalten. Der Pfad für das Laufwerk C lautet z.B. C:, und nicht C:\.

Der folgende Code veranschaulicht die Verwendung der Path-Eigenschaft mit einem File-Objekt:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Sub ShowFileAccessInfo(filespec)
    Dim fs, d, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(filespec)
    s = UCase(f.Path) & vbCrLf
    s = s & "Created: " & f.DateCreated & vbCrLf
    s = s & "Last Accessed: " & f.DateLastAccessed & vbCrLf
    s = s & "Last Modified: " & f.DateLastModified  
    MsgBox s, 0, "File Access Info"
End Sub


Code-Beispiel für eine Drives Auflistung:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
Sub ShowDriveList
    Dim fs, d, dc, s, n
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dc = fs.Drives
    For Each d in dc
        s = s & d.DriveLetter & " - " 
        If d.DriveType = 3 Then
            n = d.ShareName
        Else
            n = d.VolumeName
        End If
        s = s & n & vbCrLf
    Next
    MsgBox s
End Sub



Mehr fällt mir als kreativer Beitrag im Moment net mehr ein.
(Bastel Dir daraus was, daß das Prob der absoluten oder relativen Pfadangabe löst.)


Grüßle Ihr zwei

Lektor

____________________
Wrecking Crew



Geschrieben von Medusa am 04.02.2003 um 21:33:

 

Zum Prüfen, ob das File existiert geht auch

If not dir([Datei]) = "" then ...
Wenn sie existiert, dann...


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH