Gå til innhold

Anbefalte innlegg

Hei :)

 

jeg er ganske (eller... veldig! ) ny til VB, så jeg trenger hjelp til en ting..:

jeg har tenkt til å ha med en funksjon som finner/søker etter en eksakt fil (f.eks c:\programfiler\steam\steam.exe ) i "programmet" jeg skriver..

 

 

noen som kunne være så snille å gi meg noen ideèr? :)

 

for å prøve å forklare det litt bedre...: programmet skal søke etter fila steam.exe uten å vite hvor den egentlig ligger.... (bruker bare steam.exe som et eksempel.. aanyway)....

 

/regrin

Endret av hoggabogga
Lenke til kommentar
Videoannonse
Annonse

I VB6 kan du bruke følgende søkefunksjon:

Public Function FindFile(Path As String, Compare As String, Optional Subfolders As Boolean)

 

    Dim oFolders As New Collection, Folder, sFile As String

   

    ' Finn den første filen

    sFile = Dir(Path, vbNormal)

   

    ' Gå gjennom alle filene i denne mappen

    Do Until LenB(sFile) = 0

   

        ' Se om dette er filen vi leter etter

        If sFile Like Compare Then

           

            ' Returner hele filbanen

            FindFile = Path & sFile

           

            ' Avslutt prosedyren

            Exit Function

           

        End If

   

        ' Finn neste fil

        sFile = Dir

    Loop

   

    ' Se om vi skal søke i undermapper

    If Subfolders Then

   

        ' Finn den første undermappen

        sFile = Dir(Path, vbDirectory)

   

        ' Generer først en liste over alle undermapper

        Do Until LenB(sFile) = 0

           

            ' Ignorer alle ikke-reelle mapper

            If sFile <> "." And sFile <> ".." Then

           

                ' Legg til mappen vi fant

                oFolders.Add sFile

           

            End If

           

            ' Finn den neste i rekken

            sFile = Dir

           

        Loop

       

        ' Gå gjennom alle mapper som ble funnet

        For Each Folder In oFolders

           

            ' Søk gjennom dens filer og undermapper

            sFile = FindFile(Path & Folder & "\", Compare, Subfolders)

           

            ' Dersom vi fant noe, ...

            If LenB(sFile) <> 0 Then

                ' ... lever denne stien oppover i søke-hierakiet

                FindFile = sFile

                Exit Function

            End If

           

        Next

       

    End If

 

End Function

For å søke etter en enkeltfil, kaller du funksjonen således:

MsgBox FindFile("C:\", "steam.exe", True)

Du kan også bruke jokertegn. Slik finner du den første EXE-filen i en mappe eller dens undermapper:

MsgBox FindFile("C:\", "*.exe", True)
Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...