Basic - Copiar directorio

 
Vista:
sin imagen de perfil

Copiar directorio

Publicado por Informatica (1 intervención) el 31/03/2023 01:58:37
Necesito realizar una aplicación en vb.net que copie directorios con todo su contenido. En ocasiones, existen archivos que no se copian por diversos motivos (Acceso denegado, Utilizado por el sistema, etc.) y necesito recuperar el nombre con la ruta completa y el tamaño en bytes de esos archivos pero no sé como realizarlo. Agradezco mucho cualquier idea.
Muchas gracias.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Copiar directorio

Publicado por Rolando José (6 intervenciones) el 22/04/2025 19:09:27
pues si no eres el usuario dueño de los archivos es obvio que vas a encontrar problemas, quizas la solucion mas facil es pedir permiso.

en Visual no ceo que se pueda, aunque si tienes instalado wsl, podrias llamar a las tools de linux para que monte la unidad en ntfs y poder ver los archivos desde linux y poder copiar cualquier cosa, quizas no sea factible en vb.net, pero con seguridad en tcl o en python no te deberia tomar mas de 100 lineas de codigo.

por ejemplo en tcltk seria:

1. un cuadro para seleccionar el archivo que deseas copiar:
1
2
3
4
5
6
set fuente [tk_getOpenFile -filetypes {{{ALL} {*.*}}}]
#el archivo se guardo en la variable fuente.
#ahora necesitas una carpeta donde dejarlo o copiarlo
set destino [tk_chooseDirectory]
#finalmente guardado el archivo en fuente y el destino en destino haces la copia
file copy $fuente $destino

este codigo de 3 lineas de tcltk puede ser ejecutado dentro de python, o Lua o Ruby o Perl llamando a la libreria tk y evaluando esas 3 lineas de codigo.

en python que lo complica todo seria así:

1
2
3
4
5
6
7
8
9
import tkinter as tk
w=tk.Tk()
code='''
set fuente [tk_getOpenFile -filetypes {{{ALL} {*.*}}}]
set destino [tk_chooseDirectory]
file copy $fuente $destino
'''
w.eval(code)
w.mainloop()

En PERL seria:
1
2
3
4
5
6
7
8
9
10
11
use Tk;
 
my $mw = MainWindow->new;
my $tcl_code = q{
    set fuente [tk_getOpenFile -filetypes {{{ALL} {*.*}}}]
    set destino [tk_chooseDirectory]
    file copy $fuente $destino
};
$mw->tclEval($tcl_code);
 
MainLoop;

En Ruby seria:
1
2
3
4
5
6
7
8
9
require 'tk'
 
code = %q{
    set fuente [tk_getOpenFile -filetypes {{{ALL} {*.*}}}]
    set destino [tk_chooseDirectory]
    file copy $fuente $destino
}
Tk.ip_eval(code)
Tk.mainloop

En lua seria:
1
2
3
4
5
6
7
8
9
local ltk = require "ltk"
 
local code = [[
    set fuente [tk_getOpenFile -filetypes {{{ALL} {*.*}}}]
    set destino [tk_chooseDirectory]
    file copy $fuente $destino
]]
ltk.eval(code)
ltk.mainloop()

Cuando aprendes tcltk, aprendes un lenguaje con GUI que se puede usar dentro de otros 4 lenguajes PERL, LUA, RUBY, PYTHON, y en todos los Sistemas Operativos donde ellos funcionen.

como tu problema es como copiar archivos sobre Windows, podrias instalar cada lenguaje en Windows, o correr WSL y en Linux estos codigos funcionaran practiamente el mismo, porque la libreria tk esta presente casi en cualquier Linux desde 1995, o puedes instalarlo muy facil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Copiar directorio

Publicado por Rolando José (6 intervenciones) el 22/04/2025 21:51:12
cuando hagas la copia de los archivos de cada directorio podrias hacer un registro de cada archivo copiado, quizas con algun metodo de verificacion como un sum suma los binarios e cada byte, es una lastima que lo hagas en VB, porque con tcltk te podria guiar y lo puedes hacer igual con GUI y tte serviria no solo en Windows sino tambien en Linux y MacOS.

yo generalmente uso totalcommander o su version libre double comander para sincronizar directorio por lo que se podria igualar su GUI y sus funciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Copiar directorio

Publicado por Rolando José (6 intervenciones) el 22/04/2025 22:08:40
cuando hagas la copia de los archivos de cada directorio podrias hacer un registro de cada archivo copiado, quizas con algun metodo de verificacion como un sum suma los binarios e cada byte, es una lastima que lo hagas en VB, porque con tcltk te podria guiar y lo puedes hacer igual con GUI y tte serviria no solo en Windows sino tambien en Linux y MacOS.

yo generalmente uso totalcommander o su version libre double comander para sincronizar directorio por lo que se podria igualar su GUI y sus funciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar