iPath = "C:\672\"
iFileName$ =Dir(iPath & "*.doc")
Do While iFileName <> ""
Kill iFileName
iFileName = Dir
Loop
А я могу удалять файлы по маске?
*.doc
*.jpg
*.bmp
во всех текущих поддиректориях (я нахожусь в директории типа C:\672\...)
И в этой директории сидят поддиректории A, B, C, D, E, F и пр.
А кроме того надо удалить файлы *.pmd только в поддиректориях А, B, C.
Спасибо.
Код:
и пройтись по вложенным папкам с помощью рекурсии
http://sql.ru/forum/actualthread.aspx?tid=456013
Спасибо. Попробую и отпишусь, как оно пошло (и куда привело ;-) )
Ну вы даете... Комманда del *.doc уже не работает?
Цитата: Dmitry2064
А я могу удалять файлы по маске?
Разрешаю.
Код:
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
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
Я бы попытался подкорректировать. А то смотрю и ничего не могу сообразить (слабо соображаю в программировании). Для чего, например, создавать "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
'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:
Учите материальную часть, т.е. Вижуал Бейсик. Книжку какую купите, что-ли, прочитайте и попробуйте сами что-нибудь сделать, чтобы ламерских вопросов не задавать
Цитата: Tever
2 Dmitry2064
Учите материальную часть, т.е. Вижуал Бейсик. Книжку какую купите, что-ли, прочитайте и попробуйте сами что-нибудь сделать, чтобы ламерских вопросов не задавать
Учите материальную часть, т.е. Вижуал Бейсик. Книжку какую купите, что-ли, прочитайте и попробуйте сами что-нибудь сделать, чтобы ламерских вопросов не задавать
OK. (времени не хватает на все про все). Но буду читать.
Цитата: Dmitry2064
... Но этот код, как оказалось, работает только в VBA, а VB пишет "Object Required", имея в виду strCurFolder (в чем тут дело? другие правила описания?)...
Дело в том, что свойство ActiveDocument объекта Application существует только в VBA для MS Word. "Чистый" VB не имеет о нём ни малейшего представления.
Цитата: Dmitrii
Дело в том, что свойство ActiveDocument объекта Application существует только в VBA для MS Word. "Чистый" VB не имеет о нём ни малейшего представления.
Вот это вот оч. важно. Буду помнить :rolleyes: .
Спасибо.