PDA

Ver la Versión Completa : problemas con la copia *.*


wpolanco
22-09-2003, 22:51:40
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:


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:


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.