Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2009, 11:41
Marcelote
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Respuesta: problemas con ChDrive

Hola, puedes interceptar el error con "on error goto" o hacerlo ya en una función y te vale para siempre. Te presto ésta que me hice un día y va como un tiro:

Simplemente comprueba si existe ese directorio en esa unidad. Si te devuelve false, no hagas el ChDir, pues cascará.
Un saludo.

Código:
Function ExisteDirectorio(ByVal Directorio As String) As Boolean
    'Creada para superar el problema producido cuando en Dir se envía un
    'trayecto de red no válido: genera un error 52 (nombre de fichero no válido)
    On Error GoTo HayError
    Dim AUX As String
    'Ya que una carpeta compartida raiz da error, p.e.:
            ' dir("\\Server\C", vbDirectory) -> Error
            ' dir("\\Server\C\*.*", vbDirectory) -> Correcto.
    
    If Right(Directorio, 3) = "*.*" Then
        'Nada, queda como está
    ElseIf Right(Directorio, 1) = "\" Then
        AUX = Directorio & "*.*"
    Else
        AUX = Directorio & "\*.*"
    End If
    If Dir(AUX, vbDirectory) > vbNullString Then
        ExisteDirectorio = True
    End If
    Exit Function
HayError:
    'Nada, simplemente devuelve False.
End Function