Ver Mensaje Individual
  #1  
Antiguo 17-01-2007
Avatar de hvelascos
hvelascos hvelascos is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Reputación: 0
hvelascos Va por buen camino
problemas en sistema de archivos vfat

Hola a todos.

Escribo para haber si me echan una mano con este procedimiento de delphi que copia directorios completos,

Código Delphi [-]
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, 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

Última edición por hvelascos fecha: 17-01-2007 a las 20:34:24.
Responder Con Cita