none
Excluir Arquivos RRS feed

  • Pergunta

  • Bom dia Pessoal,

    Estou com o seguinte problema, tenho um código em minha planilha que gera backups toda vez que a planilha é aberta. 

    Este backup é salvo com o nome formatado da seguinte forma: BK_hh_dd_mm.xlsb

    Já fiz uma pesquisa no fórum e encontrei este código para excluir arquivos da pasta:

    1º Linha - Exclui todos arquivos do diretório
    
    2º Linha - Exclui o diretório
    
    Code Snippet
    Kill  "C:\Documents and Settings\Jardyson\Desktop\teste\*"   
    
    RmDir "C:\Documents and Settings\Jardyson\Desktop\teste"

    Minha dúvida é se é possível adaptar este código para excluir somente os backups anteriores a uma data X, por exemplo, se hoje é 16/05, eu que excluir todos os backups anteriores ao dia 10/05, mantendo assim, somente o backup dos últimos 5 dias.

    Desde já, agradeço a ajuda. Obrigado

    Att, Carlos


    terça-feira, 16 de maio de 2017 11:40

Respostas

  • Caso você queira excluir os arquivos de Backup anterior a hoje utiliza o algorítimo abaixo:

    Sub ExcluirBackup()
        'Usar referência à biblioteca Micrsoft Scripting Runtime
        
        'Endereço onde está os arquivos de Backup
        Dim FolderBackup As String
        FolderBackup = "C:\Users\617018\Desktop\teste"
        
        Dim Fso         As New FileSystemObject
        Dim Pasta       As Folder
        Dim Arquivo     As File
        
        Dim DtRef       As Date
        Dim UltModif    As Date
        
        'Retorna a data atual
        DtRef = Date
     
        'Verifica se existem arquivos dentro da pasta de backup
        'E verifica qual o arquivo é menor do que a data
        If Fso.FolderExists(FolderBackup) Then
            Set Pasta = Fso.GetFolder(FolderBackup)
     
            For Each Arquivo In Pasta.Files
                
                
                'Verifica a ultima data modificada do arquivo de backup
                If Arquivo.DateLastModified < DtRef Then
                    Kill Arquivo.Path
                End If
    
            Next
        End If
     
        Set Fso = Nothing
        Set Pasta = Nothing
        Set Arquivo = Nothing
    End Sub


    terça-feira, 16 de maio de 2017 14:45

Todas as Respostas

  • O nome BK_hh_dd_mm.xlsb não tem o valor do ano? Seria ideal colocar para poder fazer o check. Pois se a data atual for 05/01/2018 e o ultimo backup for 29/12/2017 será mais chato para criar o algorítimo. Seria possível o backup ficar com o nome BK_hh_dd_mm_aaaa.xlsb?

    Outro detalhe, existe a possibilidade de o arquivo Backup for alterado posteriormente? Pois se não existir, não é necessário alterar o nome do Backup. É só levar em conta 

    terça-feira, 16 de maio de 2017 14:34
  • Caso você queira excluir os arquivos de Backup anterior a hoje utiliza o algorítimo abaixo:

    Sub ExcluirBackup()
        'Usar referência à biblioteca Micrsoft Scripting Runtime
        
        'Endereço onde está os arquivos de Backup
        Dim FolderBackup As String
        FolderBackup = "C:\Users\617018\Desktop\teste"
        
        Dim Fso         As New FileSystemObject
        Dim Pasta       As Folder
        Dim Arquivo     As File
        
        Dim DtRef       As Date
        Dim UltModif    As Date
        
        'Retorna a data atual
        DtRef = Date
     
        'Verifica se existem arquivos dentro da pasta de backup
        'E verifica qual o arquivo é menor do que a data
        If Fso.FolderExists(FolderBackup) Then
            Set Pasta = Fso.GetFolder(FolderBackup)
     
            For Each Arquivo In Pasta.Files
                
                
                'Verifica a ultima data modificada do arquivo de backup
                If Arquivo.DateLastModified < DtRef Then
                    Kill Arquivo.Path
                End If
    
            Next
        End If
     
        Set Fso = Nothing
        Set Pasta = Nothing
        Set Arquivo = Nothing
    End Sub


    terça-feira, 16 de maio de 2017 14:45
  • Boa tarde Pietro,

    Existe a possibilidade de inserir o ano no mome do arquivo sim. Com relação as alterações, de fato o backup não sofre alteração alguma, entretanto, são planilhas utilizadas por muito usuários, que conseguem fazer milagres tipo corromper o arquivo sem razão aparente, por isso a necessidade de guardar o backup a cada abertura de planilha por pelo menos 2 ou três dias.

    Att, Carlos

    terça-feira, 16 de maio de 2017 15:44
  • Caso você queira excluir os arquivos de Backup anterior a hoje utiliza o algorítimo abaixo:

    Sub ExcluirBackup()
       ...
    End Sub

    Obrigado Pietro, só vi o código depois de responder seu primeiro post, funcionou perfeitamente, a única alteração que fiz foi na linha:

     DtRef = Date

    que deixei:

     DtRef = Date - 5

    para manter os últimos 5 dias como eu queria.

     
    terça-feira, 16 de maio de 2017 16:54
  • Beleza! Qualquer coisa é só gritar! ;)
    terça-feira, 16 de maio de 2017 17:19