Задача: есть маска имен файлов. Необходимо в указанном каталоге из группы файлов удалить только те, которые НЕ соответствуют маске.
Пытался адаптировать код ниже.. Удаляет все файлы. Прошу помощь в доработке.
Пытался адаптировать код ниже.. Удаляет все файлы. Прошу помощь в доработке.
| Код |
|---|
Sub Del_files() Dim sFolder, sFile, maska, filename As String Application.ScreenUpdating = False: Application.DisplayAlerts = False maska = txtRowsCount1.Text ' здесь указываем уникальную часть маски With Application.FileDialog(msoFileDialogFolderPicker) If .Show = False Then Exit Sub sFolder = .SelectedItems(1) End With sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator) sFile = "*" & maska & "*" 'маска файла filename = Dir(sFolder & "*") 'получить первое имя файла в каталоге Do While filename <> "" 'цикл по всем файлам в папке If filename <> sFile Then ' сравнить имя файла с маской On Error Resume Next Kill sFolder & filename 'удалить файл filename = Dir 'получить имя следующего файла в папке End If LoopApplication.DisplayAlerts = True: Application.ScreenUpdating = True End Sub |
Изменено: - 15.11.2024 08:01:09