Array
(
)

como apagar arquivos temporarios do QuickReport

Erivando
   - 24 fev 2006

Boa Tarde!

Estou aqui em um dilema, não estou imrpimindo um certificado onde uso uma imagem Gif de 268KB no fomulário.

e sempre que imprimo gera arquivos temporarios na pasta Temp do windows, vários com mais de 5MB cada, e eles não apagam automaticamente, e se não são apagados chegam a se multiplicar de tamanho em tempo rápido até 900MB a 1G, comprometendo a perfomace do sistema.

o problema é que para apaga-los fica dificios pq são varios nomes, como:
QRP6312.TMP, QRP7003.TMP, QRP7161.TMP, QRP92E4.TMP....

Eu queria apaga-los todos de uma vez!

Eriv@ndo


Aroldo Zanela
   - 25 fev 2006

Colega,

De acordo com a base de conhecimento da QUSoft (www.qusoft.com) que fabrica o QuickReport, esses arquivos são criados como resultado de uma operação normal de pré-visualização do relatório (Preview) e são removidos automaticamente quando a mesma é fechada. Caso ocorra alguma falha durante a execução da pré-visualização (“Crash”) ou a mesma seja interrompida pela IDE, esses arquivos não serão removidos.

Obviamente como esses arquivos são de caráter temporário, podem ser removidos. Teoricamente, o ideal seria criar uma rotina na seção de finalização (“finalization”) para efetuar esta limpeza, mas, como já foi mencionado, isto só deverá acontecer em encerramentos anormais da aplicação e conseqüentemente o código nesta seção pode não ser executado. Portanto, com base em experiências anteriores, a solução mais adequada é codificar na seção de inicialização (“initialization”).

Abaixo, código sugerido:

#Código


procedure LimpaTemporarios(const ArquivosTemporarios: String);
var I: Integer;
SR: TSearchRec;
begin
I := FindFirst( ArquivosTemporarios+´\QRPD???.TMP´, faAnyFile, SR);

while I <> 0 do
begin
if (SR.Attr and faDirectory) <> faDirectory then
begin
DeleteFile(ArquivosTemporarios+´\QRPD???.TMP´ + SR.Name);
end;
I := FindNext(SR);
end;
end;



Erivando
   - 01 mar 2006


Citação:
Colega,

De acordo com a base de conhecimento da QUSoft (www.qusoft.com) que fabrica o QuickReport, esses arquivos são criados como resultado de uma operação normal de pré-visualização do relatório (Preview) e são removidos automaticamente quando a mesma é fechada. Caso ocorra alguma falha durante a execução da pré-visualização (“Crash”) ou a mesma seja interrompida pela IDE, esses arquivos não serão removidos.

Obviamente como esses arquivos são de caráter temporário, podem ser removidos. Teoricamente, o ideal seria criar uma rotina na seção de finalização (“finalization”) para efetuar esta limpeza, mas, como já foi mencionado, isto só deverá acontecer em encerramentos anormais da aplicação e conseqüentemente o código nesta seção pode não ser executado. Portanto, com base em experiências anteriores, a solução mais adequada é codificar na seção de inicialização (“initialization”).

Abaixo, código sugerido:

#Código


procedure LimpaTemporarios(const ArquivosTemporarios: String);
var I: Integer;
SR: TSearchRec;
begin
I := FindFirst( ArquivosTemporarios+´\QRPD???.TMP´, faAnyFile, SR);

while I <> 0 do
begin
if (SR.Attr and faDirectory) <> faDirectory then
begin
DeleteFile(ArquivosTemporarios+´\QRPD???.TMP´ + SR.Name);
end;
I := FindNext(SR);
end;
end;


Obigado, amigo Aroldo Zanela.