[AccessD] A2003:Counting Files in a folder

Darren D darren at activebilling.com.au
Mon Jun 30 23:31:30 CDT 2008


Brilliant

Many thanks Jurgen - works a treat
 
Darren
-----------------
T: 1300 301 731

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jurgen Welz
Sent: Friday, 27 June 2008 2:14 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] A2003:Counting Files in a folder



The first function below is passed a file path and name and it returns a file
name with an incrementing 2 digit numeric suffix.  My application creates a file
of a type, say 'Fax.doc'.  The function is passed that parameter and it returns
a file name 'Fax-04.doc' if it finds 'Fax-01.doc', 'Fax-02.doc' and
'Fax-03.doc'.  Since the application names the files during the file creation
process, there are no decimals inserted in the name by a user so there is a
guarantee that there is one and only one period prior to the file extension.
Below this function is an untested attempt at a function that meets your exact
inquiry.


Public Function fnFileSuffix(strFilePathAndFileName As String) As String
    On Error GoTo ErrorHandler

    Dim lngI As Long
    Dim strExtension As String
    Dim strName As String

    lngI = InStr(strFilePathAndFileName, ".")
    If lngI Then
        strName = Left$(strFilePathAndFileName, lngI - 1)
        strExtension = Mid$(strFilePathAndFileName, lngI + 1)
        lngI = 1
        Do Until Dir(strName & Format$(lngI, "-00.") & strExtension) = ""
            lngI = lngI + 1
        Loop
        strFilePathAndFileName = strName & Format$(lngI, "-00.")
        fnFileSuffix = strFilePathAndFileName & strExtension
    Else
        MsgBox "improper file name"
    End If

ExitRoutine:
    On Error Resume Next
    Exit Function
ErrorHandler:
    With Err
        Select Case .Number
            Case Else
                MsgBox .Number & vbCrLf & .Description, vbInformation, "Error -
" & _
                  "fnFileSuffix"
        End Select
    End With
    'Resume 0
    Resume ExitRoutine
End Function


It might be written (untested)...


Public Function EnumerateFiles(strFileSpec as String) As Long
    Dim str As String
    Dim lngI As Long

    str = Dir(strFileSpec, vbDirectory)
    Do While Len(str)
        lngI = lngI + 1
        str = Dir()
    Loop
    EnumerateFiles = lngI
End Function


The calling sub could be something like:


Private Sub FileCount
    Debug.Print EnumerateFiles("\\OurServer\OurClient\Files\XML\*.xml") & " xml
files"
    Debug.Print EnumerateFiles("\\OurServer\OurClient\Files\PDF\*.pdf") & " pdf
files"
    Debug.Print EnumerateFiles("\\OurServer\OurClient\Files\TXT\*.txt") & " txt
files"
End Sub


Ciao
Jürgen Welz
Edmonton, Alberta
jwelz at hotmail.com

> From: darren at activebilling.com.au
> To: accessd at databaseadvisors.com
> Date: Fri, 27 Jun 2008 10:06:43 +1000
> Subject: [AccessD] A2003:Counting Files in a folder
>
> Hi team
>
>
>
> Does anyone have an example of counting how many files there are of a
particular
> type in a folder?
>
> EG I want to count all the PDF, TXT and XML files in 3 corresponding folders
>
> EG the folders are named for the file type they hold
>
> Folder 1 = \\OurServer\OurClient\Files\XML\*.xml
>
> Folder 2 = \\OurServer\OurClient\Files\PDF\*.pdf
>
> Folder 3 = \\OurServer\OurClient\Files\TXT\*.txt
>
>
>
> The Air code I have is
>
> See how many file types there are for client X (In the Example above there are
3
> but it may be 2 or 1 even 4)
>
> So in the example above using 3 file types
>
>
>
> Start a loop for file types and count the number of files in that folder type
>
> Loop 1 = xml
>
> See how many files are in folder .\XML
>
> Report the file count move to next file type
>
> Loop 2 will = pdf
>
> See how many files are in folder .\PDF
>
> Report the file count move to next file type
>
> Loop 3 will = txt
>
> See how many files are in folder .\txt
>
> Report the file count move to next file type
>
> Then exit the loop
>
>
>
> Many thanks in advance
>
> Darren
>
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

_________________________________________________________________


-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com





More information about the AccessD mailing list