Hola:
en un viejo proyecto que retomo creo que una vez al año, estoy tratando de recorrer un árbol de directorios de windows e insertar ficheros en una base de datos.
Ese tratamiento lo he intentado varias veces con hilos y no he logrado hacerlo porque se me enreda mucho ya que es recursivo.
este es el codigo que uso recursivo para insertar los ficherso en la base de datos. le paso como parámetro el diretorio a escanear, si me pudieran hechar una mano como hacer hilos con esto, la cuestion es que no debo hacer demasiados hilos, no se como hacerlo gracias
Código Delphi
[-]
procedure TForm2.RastreaDir(dir: string);
var
FileSearch: TSearchRec;
R: integer;
s: string;
begin
ChDir(dir);
if FindFirst('*.*', FaDirectory, FileSearch) = 0 then
repeat
if ((FileSearch.Attr and FaDirectory) = FaDirectory) then
begin
application.ProcessMessages;
if (FileSearch.Name <> '.') and (FileSearch.Name <> '..') then
RastreaDir(dir + '\' + FileSearch.Name); end
else
begin
application.ProcessMessages;
if cancelando then Exit;
PCarpeta.Progress := PCarpeta.Progress + 1; PCarpeta.Refresh; LFichero.Caption := FileSearch.Name; LFichero.Refresh; s := CaminoCompleto(dir + '\' + FileSearch.Name); if DataModule1.ExisteFichero(FileSearch.Name, s) then
begin
if smessagedlg('Organizador Electrónico',
'El fichero ' + FileSearch.Name +
' existe en la base de datos desea sobreescribirlo ? ',
mtInformation, [mbYes, mbno], 1) = mrYes then
AgregaFichero(dir + '\' + FileSearch.Name);
end
else
AgregaFichero(dir + '\' + FileSearch.Name); end;
if cancelando then Exit;
until FindNext(FileSearch) <> 0;
FindClose(FileSearch);
end;