Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

А я могу удалять файлы по маске?

248
07 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Можно подсказать, как написать удаление файлов по маскам:
*.doc
*.jpg
*.bmp

во всех текущих поддиректориях (я нахожусь в директории типа C:\672\...)
И в этой директории сидят поддиректории A, B, C, D, E, F и пр.
А кроме того надо удалить файлы *.pmd только в поддиректориях А, B, C.

Спасибо.
18K
07 сентября 2007 года
pavel55
79 / / 14.05.2007
ну, по-идее, можно попробывать так

 
Код:
iPath = "C:\672\"
iFileName$ =Dir(iPath & "*.doc")
     Do While iFileName <> ""
        Kill iFileName
        iFileName = Dir
     Loop


и пройтись по вложенным папкам с помощью рекурсии
http://sql.ru/forum/actualthread.aspx?tid=456013
248
07 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Спасибо. Попробую и отпишусь, как оно пошло (и куда привело ;-) )
251
07 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Ну вы даете... Комманда del *.doc уже не работает?
9.8K
09 сентября 2007 года
b0m
44 / / 23.07.2005
Цитата: Dmitry2064
А я могу удалять файлы по маске?


Разрешаю.

9.8K
09 сентября 2007 года
b0m
44 / / 23.07.2005
Код:
Private Sub Command1_Click()
FoldSub (" C:\672")
End Sub

Private Sub FoldSub(fold)
Dim objFso, objFl, objSf, sF
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFl = objFso.GetFolder(fold)
Set objSf = objFl.SubFolders
For Each sF In objSf
    On Error Resume Next
        Kill sF.Path & "\*.doc"
        Kill sF.Path & "\*.jpg"
        Kill sF.Path & "\*.bmp"
        If sF.Name = "A" Or sF.Name = "B" Or sF.Name = "C" Then Kill sF.Path & "\*.pmd"
    Call FoldSub(sF.Path)
Next
End Sub
248
09 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Ой, а можно пояснить, что здесь происходит?
Я бы попытался подкорректировать. А то смотрю и ничего не могу сообразить (слабо соображаю в программировании). Для чего, например, создавать "CreateObject"?
Я предполагал запускать программку в текущей папке, она бы считывала путь и удаляла бы во всех поддиректориях указанные расширения, а в избранных подпапках еще и *.pmd)

А номер я хотел было брать с помощью такого кода (форумчане благосклонно подсказали).
Но этот код, как оказалось, работает только в VBA, а VB пишет "Object Required", имея в виду strCurFolder (в чем тут дело? другие правила описания?)
Код:
strCurFolder = ActiveDocument.FullName
'MyPath = ActiveDocument.FullName
'MsgBox strCurFolder
arrPath = Split(strCurFolder, "\")
intCurItem = UBound(arrPath)
Do
    If IsNumeric(arrPath(intCurItem)) Then
        strNumVal = arrPath(intCurItem)
        blnResFind = True
    End If
    intCurItem = intCurItem - 1
Loop While intCurItem >= 0 And blnResFind = False
If blnResFind Then
    MsgBox strNumVal
Else
    MsgBox "Ничего подходящего не найдено."
End If


А уже по полученному номеру сформировать названия избранных подпапок (ну и не забыть прогнать все подпапки на предмет *.doc, *.jpg и пр.).

+Вопрос. А как потом сделать [COLOR="DarkRed"]ехе-шник[/COLOR], чтобы его прям из искомой директории нажать, и оно бы все удалялось? А то какие-то кнопки, формы... Неужели надо запускать VB, чтобы выполнить, то, что было написано в кодах? :eek:
2.1K
10 сентября 2007 года
Tever
87 / / 05.08.2003
2 Dmitry2064
Учите материальную часть, т.е. Вижуал Бейсик. Книжку какую купите, что-ли, прочитайте и попробуйте сами что-нибудь сделать, чтобы ламерских вопросов не задавать
248
10 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: Tever
2 Dmitry2064
Учите материальную часть, т.е. Вижуал Бейсик. Книжку какую купите, что-ли, прочитайте и попробуйте сами что-нибудь сделать, чтобы ламерских вопросов не задавать



OK. (времени не хватает на все про все). Но буду читать.

405
11 сентября 2007 года
Dmitrii
554 / / 16.12.2004
Цитата: Dmitry2064
... Но этот код, как оказалось, работает только в VBA, а VB пишет "Object Required", имея в виду strCurFolder (в чем тут дело? другие правила описания?)...


Дело в том, что свойство ActiveDocument объекта Application существует только в VBA для MS Word. "Чистый" VB не имеет о нём ни малейшего представления.

248
11 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: Dmitrii
Дело в том, что свойство ActiveDocument объекта Application существует только в VBA для MS Word. "Чистый" VB не имеет о нём ни малейшего представления.



Вот это вот оч. важно. Буду помнить :rolleyes: .

Спасибо.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог