Contare il numero di File presenti in una cartella

Anonimo
2023-10-18T16:08:51+00:00

Win10

Access '13

ho questa Funzione che uso per contare il numero di file presenti in una cartella, ma ... mi riporta un valore errato.

per esempio in una cartella vuota mi riporta che ci sono 2 file al suo interno

se ce ne sono 42 ne riporta 44...

in altre che sono vuote riporta invece correttamente 0

Function QuantiFile(ByVal strPath As String) As Long

Dim strName As String

Dim intConta As Long

On Error Resume Next

strName = Dir(strPath, vbDirectory)

Do While strName <> ""

intConta = intConta + 1

strName = Dir

Loop

QuantiFile = intConta

End Function

potete farmi capire come mai si presentano gli errori sopradescritti?

mille grazie

Ivan

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

6 risposte

Ordina per: Più utili
  1. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2023-10-24T10:25:55+00:00

    Fatti fare la lista dei file che trova

    aggiungendo un

    Debug.Print StrName

    Oppure una msgbox

    Msgbox StrName

    nel loop

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-10-24T10:05:18+00:00

    buongiorno Mimmo,

    leggo adesso la tua preziosa risposta grazie.

    ho provato come tu hai suggerito ma gli errori permangono...

    diciamo che nella cartella di ricerca si possono trovare anche delle altre cartelle ma queste non mi interessa conteggiarle.

    ma l'errore di conteggio rimane uguale.

    in questo caso per esempio adesso nella cartella c'è 1 solo file ma ne conteggia 2

    strano

    grazie lo stesso

    La risposta è stata utile?

    0 commenti Nessun commento
  3. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2023-10-19T07:35:33+00:00

    Do While strName <> ""

    If strName &lt;&gt; "." And \_
    
        StrName &lt;&gt; ".." then
    
       intConta = intConta + 1
    
    End if
    

    strName = Dir

    Loop

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-10-19T06:09:27+00:00

    e con questa tua risposta non so più come andare avanti.

    molto bene!

    :)

    La risposta è stata utile?

    0 commenti Nessun commento
  5. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2023-10-18T18:15:36+00:00

    Ciao,

    testa il contenuto di stranamente, devi escludere dal conteggio i valori

    "."

    ".."

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento