Avatar billede Slettet bruger
24. februar 2006 - 12:06 Der er 2 kommentarer

Find en bestemt fil automatisk via vba

Hej

Jeg har hentet koden fra www.makeiteasy.dk og har rettet lidt i den.

Jeg skal finde en fil i en bestemt mappe.
Jeg kender mappen med kun en del af filnavnet.

Public Function FindFiler(strFilename As String, strDrive As String, Optional ReturnAll As Boolean = True) As String

Dim varItm As Variant
Dim strFiles As String
Dim strTmp As String
Dim strResult As String
   
    If InStr(strFilename, ".") = 0 Then
        MsgBox "Du skal angive hele filnavnet!", vbCritical, "Extension mangler!"
        Exit Function
    End If
    'Hvis : mangler
    If InStr(strDrive, ":") = 0 And Len(strDrive) = 1 Then
        strDrive = strDrive & ":"
    End If
   
    With Application.FileSearch
        .NewSearch
        .LookIn = strDrive
        .SearchSubFolders = True
        .FileName = strFilename
        .MatchTextExactly = False
        .FileType = 2 'msoFileTypeAllFiles


   
        If .Execute > 0 Then
            For Each varItm In .FoundFiles
                strTmp = ExtractFileName(varItm)
                'If strFilename = strTmp Then
                    'If ReturnAll Then
                        'strResult = strResult & varItm & ";"
                    'Else
                        FindFiler = varItm
                        Exit Function
                    'End If
                'End If
            Next varItm
            strResult = Left(strResult, Len(strResult) - 1)
            FindFiler = strResult
        End If
    End With
End Function


Public Function ExtractFileName(strFullPath) As String
Dim intPos As Integer, intLen As Integer
    intLen = Len(strFullPath)
    If intLen Then
        For intPos = intLen To 1 Step -1
            'Find det sidste \
            If Mid$(strFullPath, intPos, 1) = "\" Then
                ExtractFileName = Mid$(strFullPath, intPos + 1)
                Exit Function
            End If
        Next intPos
    End If
End Function

Jeg kalder så funktionen vha:
    strFilePath = FindFiler(sSoegBlad, sPath, False)

Hvor sSoegBlad fx. er *dei*.*
og sPath er den mappe hvor filen ligger i.

Problemet er at jeg ikke kan finde filen hvis det er en .zip fil. Men døber jeg filen om til fx. .txt kan den godt finde filen.

Hvorfor kan jeg ikke finde filen når det er en .zip fil?

/stobberup
Avatar billede Slettet bruger
31. marts 2006 - 23:33 #1
Fordi .zip-filer ikke opfattes som filer, men som mapper !!
Avatar billede Slettet bruger
03. april 2006 - 08:58 #2
Jamen hvordan kan man ændre opsætningen så den skal søge efter mapper frem for filer.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester