Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   problemas en sistema de archivos vfat (https://www.clubdelphi.com/foros/showthread.php?t=39353)

hvelascos 17-01-2007 20:30:20

problemas en sistema de archivos vfat
 
Hola a todos.:D

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: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

seoane 17-01-2007 20:35:36

Yo cambiaría esta instrucción
Código Delphi [-]
if (Search.Attr = faArchive) and  (Search.Attr<>faDirectory) then
por esta otra
Código Delphi [-]
if (Search.Attr and faDirectory) = 0 then

hvelascos 17-01-2007 21:13:07

gracias por tu respuesta, funcionó bien.
saludos


La franja horaria es GMT +2. Ahora son las 09:36:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi