Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Copiar Archivos Grandes (Solucionado)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Copiar Archivos Grandes (Solucionado) 
 
Estoy con una aplicación en la que copio archivos de gran tamaño y quisiera saber como puedo saber que ha terminado la copia de esos ficheros.
Para copiar estoy usando el comando copy
Muchas gracias
 



 
última edición por garvied el Lunes, 21 Diciembre 2015, 20:04; editado 1 vez 
garvied - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Copiar Archivos Grandes 
 
A mi parece doh que el comando Copy no permite proceder, hasta cuando el archivo no haya sido copiado definitivamente.

Con el comando Copy, pues, creo no se pueda hacer otro que esperar el fin de la copia y averiguar el tamaño del file final:

Public Sub Main()

  Dim origo, copia As String
  
    origo = "/ruta/del/archivo/origen"
    copia = "/ruta/del/archivo/copia"

     Copy origo To copia

' Averigua el tamaño del archivo origen y del archivo copia:
     If Stat(copia).Size <> Stat(origo).Size Then Print "¡Los tamaños de los dos archivos son diferentes !"

End

 



 
última edición por vuott el Domingo, 20 Diciembre 2015, 01:10; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Copiar Archivos Grandes 
 
Gracias por la respuesta, el problema no es que quisiese copiar otro fichero sino que al terminar de copiar el fichero debo abrirlo, al final lo conseguí usando.
Exec ["cp", ArchivoOrigen, ArchivoDestino] Wait
de esta forma el proceso espera hasta que termina la copia.
 



 
garvied - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Copiar Archivos Grandes (Solucionado) 
 
Si quieres tener el progreso de copia del fichero, puedes emplear el comando pv (escribe man pv en el terminal para conocer su uso). Hay varias formas de hacerlo, yo hice algo similar, aunque tengo que mejorarlo un poco porque con los ficheros pequeños no funciona. Te dejo un enlace al código:

http://forge.gambas-es.org/projects...ions.module#L61

Puedes descargar el proyecto completo desde aquí para ver su funcionamiento:

http://forge.gambas-es.org/projects/simplebackup/files

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Copiar Archivos Grandes 
 
garvied escribió: [Ver mensaje]
Exec ["cp", ArchivoOrigen, ArchivoDestino] Wait


...pero estás usando un comando / programa bash con Exec....
....todo regular, pero.... yo te propongo una solución "sólo Gambas":  
Public Sub Main()

    Dim origo, copia As String
    Dim flOr, flCp As File
    Dim bb As Byte[]
    Dim quantum, lo As Integer
    Dim l As Long
    
    origo = "/ruta/del/archivo/muy/grande"
    copia = "/ruta/del/archivo-copia"
    
    flOr = Open origo For Read
    
    flCp = Open copia For Create
    
    lo = Lof(flOr)
    
    quantum = lo \ 100
    
    bb = New Byte[quantum + (lo Mod 100)]
    
    While Not Eof(flOr)
      If lo - Seek(flOr) < quantum Then quantum = lo - Seek(flOr)
      bb.Read(flOr, 0, quantum)
      bb.Write(flCp, 0, quantum)
      l += quantum
      Write #File.Out, "\r" & CStr((l * 100) \ lo) & "%"   ' Mira el porcentaje como se menea !  :-D
    Wend
    
    flCp.Close
    flOr.Close

End

 



 
última edición por vuott el Martes, 22 Diciembre 2015, 00:51; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Trabajar Con Archivos Metidos En El Ejecut... 4octavio4 General 3 Lunes, 06 Diciembre 2010, 08:44 Ver último mensaje
jsbsan
No hay nuevos mensajes Nombres De Archivos Con Espacios[Solucionado] Sebas General 4 Viernes, 06 Abril 2012, 11:35 Ver último mensaje
jguardon
No hay nuevos mensajes Archivos Para Copiar En Cola Shell Mundo Linux 5 Martes, 09 Enero 2018, 09:35 Ver último mensaje
Shell
No hay nuevos mensajes Buscar Y Listar Grandes Cantidades De Arch... tincho Aplicaciones/Fragmentos de Código 7 Sabado, 05 Enero 2019, 17:07 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron