Localizar arquivo e depois deletá-lo...

Delphi

31/03/2004

Gostaria de saber a rotina p/ eu localizar um determinado arquivo em C:\ e seus subdiretorios e depois eliminar todos...

Obrigada...


Dbluka

Dbluka

Curtidas 0

Respostas

Nerdex

Nerdex

31/03/2004

Posso te ajudar... mas a rotina é um pouco grande e possui vários loopings, inclusive um dentro do outro, pois se trata de um pocesso recursivo, onde ele procura um arquivo em em todo o C:\, esteja onde estiver...

Posso te retornar o arquivo .pas por e-mail, se desejar:
pcunit@terra.com.br


GOSTEI 0
Paullus

Paullus

31/03/2004

Posso te ajudar... mas a rotina é um pouco grande e possui vários loopings, inclusive um dentro do outro, pois se trata de um pocesso recursivo, onde ele procura um arquivo em em todo o C:\, esteja onde estiver... Posso te retornar o arquivo .pas por e-mail, se desejar: pcunit@terra.com.br


Seria interessante postar o código no fórum para que outras pessoas tenham acesso. Não concorda?
Além do mais a rotina não é tãããão grande assim.

Se for a mesma disponível na [b:2d39f908d8]unit FileCtrls[/b:2d39f908d8]...


GOSTEI 0
Nerdex

Nerdex

31/03/2004

paullus

É que eu implementei a rotina em níveis, como:
ex:
C:\niv1\niv2\niv3\niv4\niv5 ...

Fiz até o nivel 10, claro que abortando no momento que não existir mais níveis seguintes. Nota-se que é um processo recursivo, pois podem existir dezenas de diretórios no nível 2 por exemplo, assim existe looping para o nível e looping embutido para os arquivos de cada diretório do mesmo nível...

No caso da mocinha aí acima no looping dos arquivos ela poderá substituir por FileExists(path), para efetuar o seu procedimento caso a proposição seja verdadeira...

falow


GOSTEI 0
Paullus

Paullus

31/03/2004

Eu tenho uma rotina que faz praticamente o mesmo que a sua.
Olha dentro de cada pasta, se dentro dela tiver pastas, olha lá dentro tb... só que sem limitação de nível. O problema é que a rotina esta no micro da minha casa (agora estou no trabalho).

Esta rotina eu fiz com base na rotina existente na [b:874f37ecc7]unit FileCtrls[/b:874f37ecc7] de nome [b:874f37ecc7]ReadFileNames[/b:874f37ecc7] que procura por arquivos para registrar dentro do TFileListBox.

Ela não deu mais do que 30 linhas (agora não lembro de cabeça) e também é recursiva. Por isso que eu acho interessante postar aqui no fórum porque no futuro outra pessoa pode vir a precisar da mesma rotina. :wink:

O grande problema é que em casa eu não tenho Internet. Mas vou tentar trazer pra postar por aqui.


GOSTEI 0
Paullus

Paullus

31/03/2004

Eu tenho uma rotina que faz praticamente o mesmo que a sua.
Olha dentro de cada pasta, se dentro dela tiver pastas, olha lá dentro tb... só que sem limitação de nível. O problema é que a rotina esta no micro da minha casa (agora estou no trabalho).

Esta rotina eu fiz com base na rotina existente na [b:cb8ac53987]unit FileCtrls[/b:cb8ac53987] de nome [b:cb8ac53987]ReadFileNames[/b:cb8ac53987] que procura por arquivos para registrar dentro do TFileListBox.

Ela não deu mais do que 30 linhas (agora não lembro de cabeça) e também é recursiva. Por isso que eu acho interessante postar aqui no fórum porque no futuro outra pessoa pode vir a precisar da mesma rotina. :wink:

O grande problema é que em casa eu não tenho Internet. Mas vou tentar trazer pra postar por aqui.

Já no caso dela eu não acho que o FileExists resolva o problema, afinal de contas ela ainda tem que realizar a procura dentro do HD.


GOSTEI 0
Nerdex

Nerdex

31/03/2004

Paullus, posta aí quando puder...

Outra dica. No Code Central da Borland tem uma rotina: scanner files, que utiliza thread nestes loopings...


GOSTEI 0
POSTAR