Cita:
Iniciado por Foxi
No sé por qué no te ha funcionado lo de la copia de los archivos, pero si te vale con lo que has encontrado no voy a entrar más en detalle..
Ahora que he probado más en detalle resulta que no me copia nada si no encuenta archivos sueltos en el directorio "origen". En cambio, basta con que haya cualquier archivo suelto para que me copie directorios recursivamente y los archivos sueltos en el directorio destino :S.
¡Mi aplicación está endemoniada!
EDIT: Ya lo solucioné, me fallaba por esto:
Código:
Function F_Copia_Dir(origen As String, destino As String, _
Optional v_bReemplazar As Boolean = True) As Integer
Dim fso As New FileSystemObject
Dim fldrCarpeta As Folder
Dim fldrSubCarpetas
Dim fldrCarpetaTemp
Dim Ficheros
Dim FicherosTemp
Dim P As Integer
F_Copia_Dir = 0
On Error GoTo Error_Copia_Dir
If (Right(origen, 1) <> "\") Then
origen = origen + "\"
End If
If (Right(destino, 1) <> "\") Then
destino = destino + "\"
End If
If (Dir(origen) = "") Then
F_Copia_Dir = -2
Else
' Si no existe el directorio de destino se crea.
Call F_bComprueba_Crea_Directorio(destino)
Set fldrCarpeta = fso.GetFolder(origen)
' Se copian cada uno de los subdirectorios del directorio origen.
Set fldrSubCarpetas = fldrCarpeta.SubFolders
For Each fldrCarpetaTemp In fldrSubCarpetas
Call fldrCarpetaTemp.Copy(destino, v_bReemplazar)
Next
' Se copian cada uno de los ficheros del directorio origen.
Set Ficheros = fldrCarpeta.Files
For Each FicherosTemp In Ficheros
Call FicherosTemp.Copy(destino, v_bReemplazar)
Next
' Elimino las referencias.
Set fldrSubCarpetas = Nothing
Set Ficheros = Nothing
Set fldrCarpeta = Nothing
End If
Exit Function
Error_Copia_Dir:
F_Copia_Dir = -3
Call CopiaFichDir(origen, destino, P)
End Function
Quité esa condicion y ya me lo hace.