hvelascos
17-01-2007, 20:30:20
Hola a todos.:D
Escribo para haber si me echan una mano con este procedimiento de delphi que copia directorios completos,
procedure CopyDirectory(Origen, Desti : string);
var
Files : integer;
FOrigen, FDesti,traspasa : string;
ok : boolean;
Search : TSearchRec;
pos:Real;
begin
Files := FindFirst(Origen + '\*.*', faAnyFile, Search);
while Files = 0 do
begin
if (Search.Attr = faArchive) and (Search.Attr<>faDirectory) then
begin
FOrigen := Origen + '\' + Search.Name;
FDesti := Desti + '\' + Search.Name;
ok := CopyFile(PChar(FOrigen),PChar(FDesti),false);
if not ok then
ShowMessage('No se pudo copiar el fichero: '+ Search.Name)
end
else
begin
if (Search.Name <> '.') and (Search.Name <> '..') then
begin
ok := CreateDir(Desti + '\' + Search.Name);
if not ok then
ShowMessage('No se pudo crear el directorio: '+Search.Name)
else
CopyDirectory(Origen+'\'+Search.Name,Desti+'\'+Search.Name);
end;
end;
end;
Files := FindNext(Search);
end;
FindClose(Search);
end;
end;
esta función funciona a la perfección cuando la tengo corriendo desde el disco duro de la pc, pero cuando ésta aplicación la ejecuto desde un cd no funciona:mad:, nada mas lo que hace. es en vez de copiar los archivos los remplaza por un monton de carpetas con el nombre del archivos.
Por ello me preguntaba si faArchive o la caracteristica de los ficheros en sistema de archivos de un cd es diferente a la de un disco duro, o es un error del algoritmo que acabo de poner, bueno si se me paso un ; es porque se me paso al momento de transcribir el texto.
Gracias, espero que me haya explicado bien.
saludos
Escribo para haber si me echan una mano con este procedimiento de delphi que copia directorios completos,
procedure CopyDirectory(Origen, Desti : string);
var
Files : integer;
FOrigen, FDesti,traspasa : string;
ok : boolean;
Search : TSearchRec;
pos:Real;
begin
Files := FindFirst(Origen + '\*.*', faAnyFile, Search);
while Files = 0 do
begin
if (Search.Attr = faArchive) and (Search.Attr<>faDirectory) then
begin
FOrigen := Origen + '\' + Search.Name;
FDesti := Desti + '\' + Search.Name;
ok := CopyFile(PChar(FOrigen),PChar(FDesti),false);
if not ok then
ShowMessage('No se pudo copiar el fichero: '+ Search.Name)
end
else
begin
if (Search.Name <> '.') and (Search.Name <> '..') then
begin
ok := CreateDir(Desti + '\' + Search.Name);
if not ok then
ShowMessage('No se pudo crear el directorio: '+Search.Name)
else
CopyDirectory(Origen+'\'+Search.Name,Desti+'\'+Search.Name);
end;
end;
end;
Files := FindNext(Search);
end;
FindClose(Search);
end;
end;
esta función funciona a la perfección cuando la tengo corriendo desde el disco duro de la pc, pero cuando ésta aplicación la ejecuto desde un cd no funciona:mad:, nada mas lo que hace. es en vez de copiar los archivos los remplaza por un monton de carpetas con el nombre del archivos.
Por ello me preguntaba si faArchive o la caracteristica de los ficheros en sistema de archivos de un cd es diferente a la de un disco duro, o es un error del algoritmo que acabo de poner, bueno si se me paso un ; es porque se me paso al momento de transcribir el texto.
Gracias, espero que me haya explicado bien.
saludos