Страницы: 1
RSS
Способ удаления старых бекапов
 
Добрый день.
При закрытии файла работает макрос создания его копии.
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    ActiveWorkbook.Save
    Dim x As String 'папка для сохранения резервной копии
        strPath = ThisWorkbook.Path + "\backup\"
        On Error Resume Next
        
        x = GetAttr(strPath) And 0
        If Err = 0 Then ' если путь существует - сохраняем копию книги, добавляя дату-время
            strDate = Format(Now, "yyyy,mm,dd hh-mm")
            FileNameXls = strPath & "Файл " & strDate & ".xlsb"
            ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
            
            Dim c As Long
            If Dir(strPath & "*.xlsb") = "" Then Exit Sub Else c = 1
                Do
                    If Dir = "" Then Exit Do Else c = c + 1
                Loop Until False
                
            If c > 100 Then MsgBox ("В папке \backup накопилось более " & c & " резервных копий, старые можно удалить.")
                
        Else 
            MsgBox "Папка " & strPath & " недоступна или не существует.", vbCritical
        End If
End Sub

Эти копии накапливаются, хочу автоматизировать удаление старых (по превышению количества).
Как проверить дату старых файлов?
 
Читайте начиная с пункта 5.2 FSO
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Alemox написал:
Читайте начиная с пункта 5.2  FSO
а зачем?
Цитата
Михаил написал:
' если путь существует - сохраняем копию книги, добавляя дату-время
значит в имени уже все есть. Просмотреть и подтереть то что уже за пределами условий не проблема, только
Цитата
Михаил написал:
(по превышению количества).Как проверить дату старых файлов?
это не совсем одно и тоже. количество - это храним последних X копий, Дата - это храним Y дней.
может быть и симбиоз этих правил.
Но в любом случае при наличии даты в имени, FSO уже и не нужен.
По вопросам из тем форума, личку не читаю.
 
Цитата
Михаил написал:
Как проверить дату старых файлов?
FileDateTime
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх