RE:Copiar archivos en pascal !
Diego Romero:
Hice un programa para copiar un directorio con sus subdirectorios a otra carpeta
en Windows 98, y funciona perféctamente incluso los nombres largos no fué un problema
porque en lugar de escribir : xcopy /s C:\Archivos de programa\Microsoft office...
puse: xcopy /s C:\Archiv~1\Micros~1\Algo C:\prueba
Cuando vuelves a Windows y revistas la carpeta C:\Prueba , los nobres largos están bién.
pero en WindowsXP no funciona. Lo extraño es que si haces clic en inicio - ejecutar y tecleeas "command" para entrar al DOS y escribes la línea de comandos:
copy /s C:\Algo C:\Algo2 Esto funciona perféctamente. (xcopy /s te copia un directorio con todos sus subdirectorios a la carpeta especificada.
Como el comando Copy.exe no lo vas a encontrar en ninguna parte del disco duro, (creo que se carga en memoria con el command.com), para hacer esto desde pascal, la línea de comandos debe quedar así: command /c xcopy /s C:\Algo C:\Algo2.
En el help del command dice:
Command /c ejecuta el comando especificado y vuelve
Command /k ejecuta el comando especificado y sigue ejecutándose (el DOS).
Esto lo puedes teclear desde el DOS y también funciona, pues te digo que en Windows98 me funcionó muy bien. Ahora tu sabes que en XP, el archivo Command.com está en C:\Windows\System32\command.com y en 98 está en C:\Windows\Command\Command.com.
Program execw;
{$M $4000,0,0 } { stack de 16K, sin heap } { Esta línea la saqué del help de Exec }
Uses Crt, Dos;
var Ruta, LineaComando : string;
begin
Ruta := 'C:\Windows\System32\Command.com';
LineaComando := 'Command /C Xcopy /S C:\Algo C:\New';
Exec(Ruta,LineaComando);
end.
Al presionar ALT + F5 Puedo ver que lo último que mostró la pantalla de DOS dice:
"Directorio incorrecto especificado para la búsqueda de COMMAND
Comando o nombre de archivo erróneo."
Entonces no se poqué no funciona..
Te comento esto para la curiosidad de todos.
Saludos de nuevo !