como apagar arquivos temporarios do QuickReport

24/02/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


Erivando

Respostas

25/02/2006

Aroldo Zanela

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 [b:871b85db4d]anormais [/b:871b85db4d]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:

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;



Responder Citar

01/03/2006

Erivando

[quote:afc0df96d8=´Aroldo Zanela´]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 [b:afc0df96d8]anormais [/b:afc0df96d8]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:

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;
[/quote:afc0df96d8]

Obigado, amigo Aroldo Zanela.


Responder Citar