elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Copiado de archivos y carpetas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Copiado de archivos y carpetas  (Leído 3,364 veces)
Gorky


Desconectado Desconectado

Mensajes: 770



Ver Perfil WWW
Copiado de archivos y carpetas
« en: 21 Noviembre 2007, 15:01 pm »

Buenas foreros. Necesito crear un programa que me haga copias de seguridad cada vez que lo ejecute. Simplemente lo que quiero es que al ejecutarse me copie todos los archivos y carpetas de un directorio y me lo pegue en otro.
He estado probando con las funciones FileCopy y CopyFile pero ninguna de las dos me permite poner caracteres comodin. Supongo que lo que tengo que hacer es usar alguna funcion que vaya profundizando en los directorios y me devuelva la ruta de cada archivo. Se que esa funcion existe pero ni se cual es ni sabria como utilizarla.
Gracias por cualquier aportacion.


En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Copiado de archivos y carpetas
« Respuesta #1 en: 21 Noviembre 2007, 16:23 pm »

 Puedes hacerlo así:

Código
  1. Option Explicit
  2.  
  3. Private Sub Main()
  4.    Open "Copy.bat" For Output As #1
  5.            'Creamos un directorio de destino
  6.            Print #1, "md c:\Copia_Segura"
  7.            'Nos ubicamos en el dorectorio del cual copiaremos x archivos
  8.            Print #1, "cd \escritorio\Trabajo_Final"
  9.            'Copiamos...
  10.            Print #1, "copy *.* c:\Copia_Segura /y"
  11.    Close #1
  12.    'Ejecutamos el bat
  13.    Shell ("Copy.bat"), vbHide
  14.    Msgbox "Los archivos han sido copiados con exito!"
  15. End Sub


« Última modificación: 5 Abril 2008, 13:16 pm por cΔssiΔnі » En línea

Gorky


Desconectado Desconectado

Mensajes: 770



Ver Perfil WWW
Re: Copiado de archivos y carpetas
« Respuesta #2 en: 21 Noviembre 2007, 16:32 pm »

Con un archivo por lotes no es complicado ya que el comando copy si admite comodines.
Es cierto que con este codigo se hace lo que se pretende (aunque para que fuera correcto deberia ser:
Código:
Print #1, "xcopy *.* c:\Copia_Segura /ye"
pero estoy interesado en hacerlo con funciones de VB sin tener que usar el shell.
Muchas gracias de todos modos C@ss¡@n¡
« Última modificación: 21 Noviembre 2007, 16:50 pm por Gorky » En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Copiado de archivos y carpetas
« Respuesta #3 en: 21 Noviembre 2007, 17:03 pm »

 Uhm... no recuerdo... hace tiempo para salir del paso consegui hacer esto a partir de un códe del maestro 'Guille':

formulario:
Código
  1. Option Explicit
  2.  
  3. Private Sub AsignarFlags()
  4.    'Ajustamos el valor del flag, según los requerimientos del programador
  5.    iFlags = 0 + FOF_MULTIDESTFILES + FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR + FOF_SILENT
  6. End Sub
  7.  
  8. Private Sub Copia_de_Seguridad()
  9. On Error Resume Next  'Ponemos en marcha la detección de errores.
  10. Dim SHFileOp As SHFILEOPSTRUCT
  11.  
  12.    'Asignar el valor de las opciones
  13.    AsignarFlags
  14.  
  15.     sFicOri = "C:\Documents and Settings\Rey\Escritorio\Trabajo_Final\*.*" & vbNullChar & vbNullChar
  16.    sFicDes = "C:\Copia_Segura" & vbNullChar & vbNullChar
  17.  
  18.    With SHFileOp
  19.        .wFunc = FO_COPY 'Le indica que se va a copiar.
  20.        .fFlags = iFlags 'Se le indican los flag a usar.
  21.        .hWnd = Me.hWnd '.
  22.        .pFrom = sFicOri 'Path del folder o fichero (completo) de origen.
  23.        .pTo = sFicDes 'Path del folder o fichero (completo) de destino.
  24.        .lpszProgressTitle = "Procesando" '"Copiando los ficheros especificados"
  25.    End With
  26.  
  27.    Call SHFileOperation(SHFileOp)
  28.  
  29.    Err = 0 'Para dejar de detectar error
  30.    On Local Error GoTo 0 'Liberamos la detección de errores de esta función
  31. End Sub
  32.  
  33. Private Sub Form_Load()
  34.    Copia_de_Seguridad
  35.    MsgBox "Copia de seguridad realizada con exito!"
  36.    End
  37. End Sub
  38.  

modulo:
Código
  1. Option Explicit
  2.  
  3. Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
  4.    (lpFileOp As SHFILEOPSTRUCT) As Long
  5.  
  6. Public sFicOri As String 'Para almacenar el path de Origen
  7. Public sFicDes As String 'Para almacenar el path de Destino
  8. Public iFlags As Long 'Opciones de la copia
  9.  
  10.  
  11. ' Variables, constantes y declaraciones para el API
  12. Public Type SHFILEOPSTRUCT
  13.    hWnd As Long                        ' hWnd del formulario
  14.    wFunc As Long                       ' Función a usar: FO_COPY, etc.
  15.    pFrom As String                     ' Fichero(s) de origen
  16.    pTo As String                       ' Fichero(s) de destino
  17.    fFlags As Long 'Para Windows 2000/XP declararlo como Long, 9x declararlo como Integer.
  18.    fAnyOperationsAborted As Boolean    ' Si se ha cancelado
  19.    hNameMappings As Long               '
  20.    lpszProgressTitle As String         ' Sólo si se usa FOF_SIMPLEPROGRESS
  21. End Type
  22.  
  23. ' Constantes para FileOperation
  24. Public Enum eFO
  25.    FO_COPY = &H2&                      ' Copiar
  26.    FOF_MULTIDESTFILES = &H1&           ' Multiples archivos de destino
  27.    FOF_SILENT = &H4&                   ' No mostrar el progreso
  28.    FOF_NOCONFIRMATION = &H10&          ' No pedir confirmación
  29.    FOF_NOCONFIRMMKDIR = &H200&         ' No confirmar la creación de directorios
  30. End Enum

 Si encuentro una forma más efectiva y que involucre menos code, la posteo... Ahora mismo no recuerdo y como dices que no te sirve el FileCopy...

 Saludos.
« Última modificación: 5 Abril 2008, 13:17 pm por cΔssiΔnі » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Evitar copiado de archivos de una carpeta
Windows
seu230 1 19,969 Último mensaje 8 Abril 2011, 19:48 pm
por el-brujo
como conocer si se ha accedido a pen y si se han copiado archivos a pc
Seguridad
jjcage 2 11,829 Último mensaje 9 Febrero 2012, 16:03 pm
por abi-ds
¿Cómo puedo forzar el copiado de archivos con WIN7 cuando el XP sí lo permitía?
Windows
kevin753 2 3,643 Último mensaje 14 Junio 2014, 12:05 pm
por kevin753
testdisk, directorio de copiado de archivos
GNU/Linux
LUIDI 5 7,672 Último mensaje 1 Diciembre 2015, 12:24 pm
por marmolito
copiado y renombrado de archivos según lista
Scripting
biobit 2 4,710 Último mensaje 9 Septiembre 2018, 13:53 pm
por biobit
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines