
14/05/2008, 01:24
|
| | Fecha de Ingreso: marzo-2008
Mensajes: 35
Antigüedad: 17 años Puntos: 0 | |
Re: Ayuda, desesperado, Backup, ¿Error en CopyFolder? Para que conste:
He tenido que utilizar la función "F_bComprueba_Crea_Directorio" para comprobar si existe un directorio (y si no existe crearlo), y me he acordado de que lo había compartido con el Foro en esta consulta, utilizando una función propia "F_Buscar_Texto" en vez de InStr... Me he dado cuenta de que los resultados de estas dos funciones difieren en caso de que no se encuentre el texto buscado... La función "F_bComprueba_Crea_Directorio" utilizando InStr cambia un poquito por ello, la muetsro para el que lo quiera utilizar correctamente:
Código:
'********************************************************************************
'Nombre: F_bComprueba_Crea_Directorio
'Descripción: Comprueba si existe un directorio pasado como parámetro, si no existe
' lo crea creando, si hace falta, los directorios padres.
' Si no se puede crear el directorio se devuelve False.
'Fecha: 02/11/2004
'********************************************************************************
Function F_bComprueba_Crea_Directorio(v_sDirectorio As String) As Boolean
Dim l_sDirectorio_Temp As String
Dim l_bSin_Directorios_Padres As Boolean
Dim l_nPosicion_Temp As Integer
Dim l_bComprobado_Dir_Padre As Boolean
' Inicializo valores.
l_sDirectorio_Temp = v_sDirectorio
l_bSin_Directorios_Padres = False
l_bComprobado_Dir_Padre = False
l_nPosicion_Temp = 0
' Efectúo un bucle hasta que se cree el directorio final o no se encuentren
' directorios padres.
While ((Dir(l_sDirectorio_Temp, vbDirectory) = "") And _
(l_bSin_Directorios_Padres = False))
' Compruebo que el directorio tenga directorio padre.
l_nPosicion_Temp = l_nPosicion_Temp + 1
l_nPosicion_Temp = InStr(l_nPosicion_Temp, l_sDirectorio_Temp, "\", vbTextCompare)
If (l_nPosicion_Temp < 1) Then
If (l_bComprobado_Dir_Padre = False) Then
l_bSin_Directorios_Padres = True
Else
l_nPosicion_Temp = Len(l_sDirectorio_Temp) + 1
l_sDirectorio_Temp = l_sDirectorio_Temp & "\"
End If
End If
If (l_nPosicion_Temp > 0) Then
If (Dir(Left(l_sDirectorio_Temp, l_nPosicion_Temp - 1), vbDirectory) = "") Then
Call MkDir(Left(l_sDirectorio_Temp, l_nPosicion_Temp - 1))
Else
l_bComprobado_Dir_Padre = True
End If
Else
l_bSin_Directorios_Padres = True
End If
' Inicializo el directorio original.
l_sDirectorio_Temp = v_sDirectorio
Wend
F_bComprueba_Crea_Directorio = Not l_bSin_Directorios_Padres
End Function
Saludos, Foxi. |