Condividi tramite

Verificare l'esistenza di un percorso

Anonimo
2010-08-31T18:04:36+00:00

Ciao a tutti,

per verificare l’esistenza di un percorso ho trovato due metodi:

1° Metodo

Dim Path As String          

Dim fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

Path =Percorso di cui si vuole verificare l’esistenza

If (fso.FolderExists(Path) = True)  Then ……           Set fso = Nothing

2° Metodo

Dim Path As String          

Path =Percorso di cui si vuole verificare l’esistenza

If (Len(Dir(Path, vbDirectory)) > 0)  Then ……

Volevo sapere se i due metodi sono equivalenti, o se c’è uno meglio dell’altro, e perchè?

Microsoft 365 e Office | Accesso | 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

Risposta accettata dall'autore della domanda

  1. Anonimo
    2010-08-31T19:26:41+00:00

    Ciao Eulero,

    Sicuramente il secondo metodo è migliore del primo perchè utilizza solo istruzioni native di VBA.

    Il primo metodo al contrario deve istanziare un oggetto da una libreria esterna da VBA.

    Ciao

    Giorgio Rancati

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-02-06T14:09:24+00:00

    L'istruzione Dir è più semplice e pulita, è stata progettata per lo scopo e non innesca l'errore se il file o la cartella non esiste, l'eventuale errore si presenta se non esiste il device (unità di rete o disco).

    Grazie Giorgio! Volevo chiarire due cose. Il device sarebbe il disco o l’unità di rete dove è installato il Sistema Operativo?

    Esso è dato da Environ(SystemDrive)? Omeglio per:

    ·      risolvere l’eventuale errore dovuto all’inesistenza del device, e quindi

    ·      fare in modo che l’istruzione: (Dir(Path & "\NomeFile.accdb") <> “”) non inneschi nessun tipo di errore,

    è sufficiente definire il Path con:     Environ(SystemDrive) & “............”

                                      oppure:     Environ(HomeDrive) & “............”

                                      anziché:     “C:............”

    vero? o sbaglio?

    0 commenti Nessun commento
  2. Anonimo
    2011-02-06T10:44:45+00:00

     

    Come vi sembra questo metodo rispetto a quello precedente?

     

     

    L'istruzione Dir è più semplice e pulita, è stata progettata per lo scopo e non innesca l'errore se il file o la cartella non esiste, l'eventuale errore si presenta se non esiste il device (unità di rete o disco).

     

    Si potrebbe creare una funzione simile per verificare anche l’esistenza di un percorso?

     

    certamente


     Public Function EsisteDir(ByVal str As String) As Boolean

              On Error Resume Next

              EsisteDir = (GetAttr(str) And vbDirectory) = vbDirectory

     End Function


    Ciao

    Giorgio Rancati

    0 commenti Nessun commento
  3. Anonimo
    2011-02-05T13:40:10+00:00

    Un argomento strettamente correlato alla verifica dell'esistenza di un percorso, è la verifica dell'esistenza di un file.

    In modo simile a quanto visto nei post precedenti, per verificare l’esistenza di un percorso e l’esistenza di un file

    si possono utilizzare le seguenti istruzioni:

    Se il percorso (Path) esiste allora              à    If  (Dir(Path, vbDirectory) <> “”) Then   

    Se il file (NomeFile.accdb) esiste allora      à    If  (Dir(Path & "\NomeFile.accdb") <> “”) Then

    Un altro metodo per verificare l’esistenza di un file potrebbe essere il seguente:

    If EsisteFile(Path & "\NomeFile.accdb")  Then  …

    che si basa sulla seguente funzione:

    Public Function EsisteFile(ByVal str As String) As Boolean

                  On Error Resume Next

                  EsisteFile = (GetAttr(str) And vbDirectory) = 0

    End Function

    Come vi sembra questo metodo rispetto a quello precedente?

    Si potrebbe creare una funzione simile per verificare anche l’esistenza di un percorso?

    0 commenti Nessun commento
  4. Anonimo
    2010-09-01T00:11:50+00:00

    Grazie della risposta molto chiara!

    0 commenti Nessun commento