Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problemas con la copia *.* (https://www.clubdelphi.com/foros/showthread.php?t=3865)

wpolanco 22-09-2003 22:51:40

problemas con la copia *.*
 
Saludos Gente del Foro, He estado usando los comandos delete File o Copyfile acompañado de *.*, para copiar todo el contenido o borrar todo el contenido de un diskette, y me ha dado errores, hay alguna forma de hacer estas copia o eliminacion usando el wildcard *.* como el dos desde una aplicacion delphi. Por favor caulquier ayuda sabria agradecerla. Hasta pronto

marcoszorrilla 22-09-2003 22:57:01

Prueba esto:

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
MiDir:String;//Donde está los ficheros
MisFicheros:String;//Cadena que contiene el nombre con comodines
Rbusqueda:TSearchRec;//Está definida en la unidad SysUtils

begin
MiDir:='A:\';
MisFicheros:='*.Dbf';

if FindFirst(MiDir+MisFicheros,faanyfile, Rbusqueda)= 0 then
begin
 DeleteFile(Pchar(MiDir+Rbusqueda.Name)); //Borro el primer si Existe

  //Busco todos los del mismo patrón y los borro
  While FindNext(Rbusqueda) = 0 do
  begin
  DeleteFile(Pchar(MiDir+Rbusqueda.Name));
  end;

  //Ambas funciones devuelven 0 si la búsqueda tiene éxito.
end;

Un Saludo.

__cadetill 22-09-2003 22:58:03

igual te puede servir un truco que hay en mi web sobre la utilización de FindFirst y FindNext (es el truco 2 y la web en la firma)

marcoszorrilla 22-09-2003 23:00:56

O quizás mejor:

Código:

procedure Tselecdir.borrarClick(Sender: TObject);
  procedure borradentro(directorio:string);
  var
    n:integer;
    Rbusqueda : TSearchRec;
  begin
    n := FindFirst(directorio+'\*.*',faanyfile, Rbusqueda);
    while n=0 do begin
        if (rbusqueda.Name <> '..') and
            (rbusqueda.Name <> '.') then begin
            if (rbusqueda.Attr = faDirectory) then begin
                borradentro(directorio+'\'+rbusqueda.Name);
                rmdir(directorio+'\'+rbusqueda.Name);
            end else
                deletefile(directorio+'\'+Rbusqueda.name) ;
        end;
        n := FindNext(Rbusqueda);
    end;

  end;
var
  diractivo:string;
begin
    //hago el de defecto el padre, sino.. error I/O16
  chdir('..');
  GetDir(0,diractivo);
  borradentro(DirectLB.directory );
  rmdir(DirectLB.directory);
  DirectLB.directory := diractivo;
end;

Ya nos dirás como te va.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 03:17:11.

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