Exclusão de todos os arquivos de uma pasta.

19/05/2003

1

Pessoal já testei várias coisas mas não deleta nada e não sei por que, deem uma olhada em um código que em colega meu me passou afirmando que no pc dele tinha funcionado e aqui não funciona, está no OnClose do form principal.

var Search: TSearchRec; Caminho: string; begin Caminho := ´C:\WINDOWS\TEMP\´; FindFirst( Caminho+´*.*´,0,Search ); try DeleteFile( Caminho+Search.Name ); while FindNext( Search ) = 0 do DeleteFile( Caminho+Search.Name ); except end; end;



Responder

Posts

19/05/2003

Dcport

Você pode utilizar a função da shell SHFileOperation (unit ShellAPI), que copia, move, exclui e renomeia um ou mais arquivos. Você pode apagar todos os arquivos em uma chamada só, especificando ´*.*´ como nome.

Apesar de o uso desta função ser um pouco trabalhoso (alguns campos da estrutura SHFILEOPSTRUCT têm que ser PChars terminados com dois #0), ela é bem prática e flexível.

Para mais detalhes, faça uma busca por SHFileOperation em http://msdn.microsoft.com ou na documentação do Platform SDK (não sei se o help do Delphi contém esta função; de qualquer forma, as outras fontes são mais completas).


-- dcport


Responder

19/05/2003

Traipse

Gabriel -

Talvez você precise ´setar´ os bits de atributo [dos arquivos desejados] no FindFirst.

Em lugar de ´FindFirst (´xxx\*.*´, 0, Search),
tente ´FindFirst(´xxx\*.*´, faAnyFile, Search).

Se funcionar, dê uma olhada nas possíveis variações para os atributos faXXXX para não correr o risco de apagar o que você não quer (system, hidden, etc.)

A propósito, depois de terminar com o FindFirst/FindNext, não esqueça de usar FindClose.

Traipse
http://www.traipse.com.br


Responder

20/05/2003

Inutaishou

Obrigado pessoal, vou tentar...


Responder