2017-03-29 3 views
0

J'essaie d'obtenir un répertoire qui est dans le réseau en utilisant un chemin UNC et le FileSystemObject, mais si le répertoire réseau n'est pas disponible, la réponse prend beaucoup de temps. Je suppose que cela est dû à la numérisation de la majeure partie du réseau et/ou envoie plus de pings à ce stade. Alors existe-t-il une méthode que je pourrais utiliser pour vérifier plus rapidement l'existence d'un répertoire de réseau avant d'utiliser le FSO?VBA: Refuser une réponse longue en utilisant UNC Path et FileSystemObject

+0

C'est VBA mais cela n'a pas d'importance. – Kinimod

Répondre

0

J'ai ajouté une vérification de fichier (et un exemple d'appel à partir d'une sous-routine), puis une vérification de dossier. Les deux sont appelés de la même manière et tous deux utilisent la fonction Dir. J'ai ajouté un gestionnaire d'erreurs dans le fichier, cela vaut la peine d'ajouter ceci pour le vérificateur de dossier:

Sub Main() 
    if FileExists("O:\Filenamehere") = TRUE then 
     'do stuff 
    end if 
End Sub 

'For a file 
Function FileExists(ByVal FullPath As String) As Boolean 
    On Error GoTo Hand 
    If Dir(FullPath) <> "" Then 
     FileExists = True 
    Else 
     FileExists = False 
    End If 
    Exit Function 
Hand: 
    Select Case Err.Number 
     Case 52 
      FileExists = False 
    End Select 
End Function 

'For a directory 
Function DirectoryExists(ByVal FullPath As String) As Boolean 
    If Dir(FullPath, vbDirectory) <> "" Then DirectoryExists = True Else DirectoryExists = False 
End Function