pgranados
26-01-2023, 01:54:40
Buen día colegas, tengo una duda, ¿Cuál es la mejor (mas rápida y limpia) forma de eliminar diversos archivos?
Tengo una tabla llamada comprobantes donde almaceno el nombre del archivo, ejemplo: (Comprobante001)
Y tengo la ruta del comprobante en otra tabla llamada Parámetros, ejemplo: (C:\Programa\Comprobantes\Comprobante001.PDF)
Si tengo la tabla Comprobantes con 100 registros
Comprobante001, Comprobante002, ....... Comprobante100
¿Cuál seria la mejor forma de eliminar los 100 registros y sus respectivos archivos?
Ahorita lo que hago es un ciclo donde voy eliminando registro y archivo, pero no se porque a veces me arroja un error diciendo que el archivo no existe cuando claramente si. Anexo el código que estoy usando.
for i := 0 to FDQuery.RecordCount-1 do
begin
FDQuery.Refresh;
FormaEsperaImportacion.lbl.Refresh;
FormaEsperaImportacion.lbl.Caption:= 'Archivo Eliminado del Sistema: '+intToStr(i)+ ' de '+lsValorCount+'.';
lsNomArchXML:= FDQueryParametrosPAEXINGRESOSXML.Value+'\'+FDQuery.FieldByName('NOMBRE_ARCHIVO').Value+'.XML';
lsNomArchPDF:= FDQueryParametrosPAEXINGRESOSPDF.Value+'\'+FDQuery.FieldByName('NOMBRE_ARCHIVO').Value+'.PDF';
if DeleteFile(lsNomArchXML)then
begin
DModuloEmpresa.FDQuery.Delete;
end
else
begin showMessage('Hubo un error al eliminar el archivo XML. Favor de Eliminar Manualmente');
end;
// activar cuando los pdf se generen
if FileExists(lsNomArchPDF) then // Si existe PDF, intento eliminarlo, pregunto si existe debido a que no en todos los casos se genera el pdf
begin
if DeleteFile(lsNomArchPDF)
then
begin
// Se elimino el archivo
end else
begin showMessage('Hubo un error al eliminar el archivo PDF, Favor de Eliminar Manualmente.'); end;
end;
FDQuery.Next;
end;
Saludos
Tengo una tabla llamada comprobantes donde almaceno el nombre del archivo, ejemplo: (Comprobante001)
Y tengo la ruta del comprobante en otra tabla llamada Parámetros, ejemplo: (C:\Programa\Comprobantes\Comprobante001.PDF)
Si tengo la tabla Comprobantes con 100 registros
Comprobante001, Comprobante002, ....... Comprobante100
¿Cuál seria la mejor forma de eliminar los 100 registros y sus respectivos archivos?
Ahorita lo que hago es un ciclo donde voy eliminando registro y archivo, pero no se porque a veces me arroja un error diciendo que el archivo no existe cuando claramente si. Anexo el código que estoy usando.
for i := 0 to FDQuery.RecordCount-1 do
begin
FDQuery.Refresh;
FormaEsperaImportacion.lbl.Refresh;
FormaEsperaImportacion.lbl.Caption:= 'Archivo Eliminado del Sistema: '+intToStr(i)+ ' de '+lsValorCount+'.';
lsNomArchXML:= FDQueryParametrosPAEXINGRESOSXML.Value+'\'+FDQuery.FieldByName('NOMBRE_ARCHIVO').Value+'.XML';
lsNomArchPDF:= FDQueryParametrosPAEXINGRESOSPDF.Value+'\'+FDQuery.FieldByName('NOMBRE_ARCHIVO').Value+'.PDF';
if DeleteFile(lsNomArchXML)then
begin
DModuloEmpresa.FDQuery.Delete;
end
else
begin showMessage('Hubo un error al eliminar el archivo XML. Favor de Eliminar Manualmente');
end;
// activar cuando los pdf se generen
if FileExists(lsNomArchPDF) then // Si existe PDF, intento eliminarlo, pregunto si existe debido a que no en todos los casos se genera el pdf
begin
if DeleteFile(lsNomArchPDF)
then
begin
// Se elimino el archivo
end else
begin showMessage('Hubo un error al eliminar el archivo PDF, Favor de Eliminar Manualmente.'); end;
end;
FDQuery.Next;
end;
Saludos