Há algum tempo encontrei uma dica para exclusão de vários arquivos e até pastas acho que aqui mesmo no fórum e vinha usando a rotina - sem problemas.
Agora, ao colocá-la num programa de captura de imagens, em um XP Home, ela tema em não funcionar em alguns casos...
Criei uma função para excluir os arquivos referenciados em uma string que contém a pasta e a extensão dos arquivos a serem excluídos:
Function Pasta2Del(sPasta2Del: String; bPastaFica: Boolean): Boolean;
Var
FileStru: TshFileOpStruct;
bExclusao: Boolean;
lpPasta: LPSTR;
Begin
lpPasta := PChar(sPasta2Del);
bExclusao := False;
FillChar(FileStru, SizeOf(FileStru), 0);
FileStru.wFunc := FO_DELETE;
FileStru.pFrom := lpPasta; // PChar(sPasta2Del);
FileStru.fFlags := FOF_FILESONLY
or FOF_SIMPLEPROGRESS
or FOF_NOCONFIRMATION;
// or FOF_SILENT Ative para não mostrar mensagens
// or FOF_ALLOWUNDO Ative se quiser usar a lixeira
bExclusao := ((ShFileOperation(FileStru)=0)
and
(not FileStru.fAnyOperationsAborted));
End;
A função é chamada várias vezes; por exemplo, hoje, sexta-feira, é chamada para excluir todas as imagens de segunda-feira e também todas as que existirem na pasta de sábado (amanhã):
Pergunta
paulobergo
Oi Pessoal...
Há algum tempo encontrei uma dica para exclusão de vários arquivos e até pastas acho que aqui mesmo no fórum e vinha usando a rotina - sem problemas.
Agora, ao colocá-la num programa de captura de imagens, em um XP Home, ela tema em não funcionar em alguns casos...
Criei uma função para excluir os arquivos referenciados em uma string que contém a pasta e a extensão dos arquivos a serem excluídos:
A função é chamada várias vezes; por exemplo, hoje, sexta-feira, é chamada para excluir todas as imagens de segunda-feira e também todas as que existirem na pasta de sábado (amanhã):
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera1\foto\segunda\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera1\foto\sabado\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera2\foto\segunda\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera2\foto\sabado\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera3\foto\segunda\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera3\foto\sabado\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera4\foto\segunda\*.jpg', true);
Pasta2Del('c:\docume~1\alluse~1\docume~1\cameras\camera4\foto\sabado\*.jpg', true);
O problema é que, em algumas pastas, não funciona... nada é excluído e a mensagem
"Não é possível excluir arquivo. Não é possível ler o arquivo ou disco de origem."
Alguma idéia? (ou há outra forma de excluir vários arquivos de uma só vez, «tipo» um del \pasta\*.jpg ?
Grato!
Abraços!
Editado por paulobergoLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.