Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como copiar un grupo de archivo de una sola etension (https://www.clubdelphi.com/foros/showthread.php?t=47315)

kurono 24-08-2007 05:20:00

Como copiar un grupo de archivo de una sola etension
 
hola amigos del foro tengo un problema quiero hacer una aplicacion en delphi 7 que me copie un grupo de archivo de una sola extension por ejemplo *.doc eso se hace facil en DOS que seria copy "c:\*.doc" "d:" pero me gustaria hacer eso con delphi 7 debo aclarar que se copiar archivo con delphi 7 pero solo se copiar uno a la ves no todo el codigo seria este

copyfile(pchar('c:\nombre.doc'),pchar('d:\nombre.doc'),true);

si hay una forma de modificar este codigo para que copie un grupo de archivo de una sola extension se lo agradeceria mucho

xeBuz 24-08-2007 08:51:32

Ojala te sirva, con FindFirst() da el primer valor, y sigue en un bucle mientras haya mas archivos (con FindNext() )
El Memo que esta ahi es para que agregue los archivos que copió


Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
sExt : string;
sPathOrigen, sPathDestino : string;
SearchRec: TSearchRec;

begin
sExt:= 'txt';
sPathOrigen := 'C:\';
sPathDestino := 'E:\';

if FindFirst (sPathOrigen + '*.' + sExt, faAnyFile, SearchRec) = 0 then
    begin
      repeat
        begin
          Memo.Lines.Add(SearchRec.Name);
          copyfile(pchar(sPathOrigen + SearchRec.Name, pchar(sPathDestino + SearchRec.Name, true); 
        end;
      until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
    end;
end;



Saludos,
Jesus Fernando

dec 24-08-2007 12:07:42

Hola,

Otra opción puede ser usar la función "ShFileOperation()" de la unidad "ShellApi.pas", que puede dar bastante juego. Aquí un sencillo ejemplo:

Código Delphi [-]
uses
  ShellApi;

function CopiarArchivo(const origen, destino: string): boolean;
var
  FileOp: TSHFileOpStruct;
begin
  FillChar(FileOp, SizeOf(FileOp),#0);
  with FileOp do begin
    wFunc := FO_COPY;
    pTo := PChar(destino+#0#0);
    pFrom := PChar(origen+#0#0);
    fFlags := FOF_NOCONFIRMATION;
  end;
  result := (ShFileOperation(FileOp) = 0);
end;

// Ejemplo de llamada a CopiarArchivo()
procedure TForm1.Button1Click(Sender: TObject);
begin
  CopiarArchivo('C:\archivos\*.txt','C:\archivos2\');
end;

kurono 24-08-2007 19:32:00

ok gracias amigo me funciono


La franja horaria es GMT +2. Ahora son las 14:15:56.

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