Jump to content
Sign in to follow this  
Belini

Deletar arquivos e pastas de uma unidade.

Recommended Posts

Este script será útil principalmente para deletar aqueles arquivos chatos que vem nos pendrives, use com atenção para não deletar por engano arquivos importantes de alguma unidade importante.

 

 

#include <File.au3>
#include <Array.au3>
#include <String.au3>

; ===========================================================
; Autoit3 V 3.3.9.4
; Autor: Belini
; Data: 26/07/2012
; Objetivo: Deletar todas as pastas e arquivos de uma unidade.
; Obs: Use com atenção por sua conta e risco.
; ===========================================================

deleta_tudo()

Func deleta_tudo()
Local $listar, $contador = 0
$caminho = FileSelectFolder("Indique o caminho da unidade:", "")

If StringLen($caminho) > 3 Then $caminho = StringMid($caminho, 1, 3)
$listar = _FileListToArray($caminho)
$contar = UBound($listar)
$contar = $contar - 1

If $contar > 0 Then
    _ArrayDisplay($listar, "Atenção estes ítens serão deletados")
    $opcao = MsgBox(1, "Deletar arquivos", "Todos os arquivos serão deletados, quer mesmo deletar?")

    If $opcao = 2 Then
        MsgBox(4096, "Cancelado:", "A operação foi cancelada!", 3)
        Exit
    EndIf

    If $opcao = 1 Then
        While 1
            $contador += 1
            If FileExists($caminho & $listar[$contador]) And FileGetAttrib($caminho & $listar[$contador]) = "D" Then DirRemove($caminho & $listar[$contador], 1)
            If FileExists($caminho & $listar[$contador]) And FileGetAttrib($caminho & $listar[$contador]) = "A" Then FileDelete($caminho & $listar[$contador])
            If $contador >= $contar Then ExitLoop
            Sleep(1)
        WEnd
    EndIf
    MsgBox(4096, "Arquivos deletados com sucesso!", "Todos arquivos da unidade " & $caminho & " foram deletados.")
Else
    MsgBox(4096, "Sem arquivos para deletar!", "Não existe nenhum arquivo para ser deletado nesta unidade!")
EndIf

EndFunc   ;==>deleta_tudo

 

  • Like 1

Share this post


Link to post
Share on other sites

hummm, vou testar e retorno com resultados...

 

:construction:

 

João Carlos.

Share this post


Link to post
Share on other sites

Cara comigo aqui tive que acrescentar "/" na concatenação, mas fora isso funcionou tranquilo, consegui fazer um leitor de arquivos por data de alteração e apagar os que tiverem mais de 15 dias. Valeu mesmo.

 

($caminho & "\" & $listar[$contador])

Share this post


Link to post
Share on other sites

A barra invertida que faltou é por causa de uma falha do fórum na postagem de códigos, mais que bom que foi útil prá você.

Share this post


Link to post
Share on other sites

Realmente eu também tinha percebido a falta da barra mas como eu já sabia do problema com a tag por isso não mensionei..

 

Mas funciona bem amigo e apagar com base na data é exclente também.

 

JS

Share this post


Link to post
Share on other sites

Olá @Suédys Antonio Barros, resolver esse tipo de questão seria fácil, se não fosse a seguinte situação, para acessar "cada" uma dessas determinadas pastas, você precisa ter acesso à elas, e não adianta ter uma conta de administrador se elas estiverem protegidas por senha.

 

Deixa eu tentar explicar de outra forma, imagine um computador de empresa, que 3 ou mais usuários utilizem esta máquina, mas cada usuário possua uma senha... É aqui que está a dificuldade... Você não consegue ter acesso à essas pastas de modo fácil, pois elas estão protegidas por senha, e não é uma conta de administrador que consegue passar por cima disso. As contas que não estiverem com senha, você até consegue ter acesso como administrador.

 

Se estiver em um domínio, acho que não tem mesmo como fazê-lo.

 

Talvez haja uma outra forma, mas eu desconheço até o momento.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×