Страница: 1 |
Убивать файлы в заданной директории и во всех вложенных папках этой директории.... Например с:\!!!\*.ini А в директории C:\!!!\ есть вложенные папки например 1,2,3 и там тоже есть эти *.ini Подскажите как лутше и если можна листинг программы???
Циклом пройди по всем поддиректориям и поудаляй все файлы (Команда Kill), а потом также удали и дериктории (Команда RmDir). Это самый простой способ Можно Scripting Runtime использовать. Создаешь новый проект. Подключаешь Microsoft Scripting Runtime: Меню -> Project -> Preferences... Ставишь галку для Microsoft Scripting Runtime. Вставляешь код: Option Explicit Dim fso As FileSystemObject 'объект для работы с файловой системой 'Старт программы 'Перебираем папки 'Перебираем файлы и удаляем с расширением *.ini В папке E:/Test1 удаляются файлы с расширением *.ini Тут примерчик на сайте был (Scan for folders) от d1 (Андрей), рекурсивное сканироание каталога/диска. Он возвращает все (полные) пути к файлам, а далее можно пользоваться либо VB'шным Kill или API'шным DeleteFile() Страница: 1 |
Вопрос: Удалить файлы в заданной директории VB
Добавлено: 17.02.04 10:04
Автор вопроса: EDIK
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #1
Добавлено: 17.02.04 14:07
Номер ответа: 2
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #2
Добавлено: 17.02.04 15:28
Dim RootFolder As String 'текущий каталог
Private Sub Form_Load()
Set fso = New Scripting.FileSystemObject 'создаем объект для работы с файловой структурой
RootFolder = "E:\Test1" 'путь к папке
VFold RootFolder
End Sub
Private Sub VFold(folderspec)
Dim F, f1, sf
Set F = fso.GetFolder(folderspec) 'получаем объект Folder
'Просматриваем файлы в текущей папке
VFile folderspec
Set sf = F.SubFolders 'получаем объект SubFolders
'Организуя цикл, просматриваем папки
For Each f1 In sf
VFold (f1.Path)
Next
End Sub
Private Sub VFile(folderspec)
Dim fld, f1, fc
Dim i As Integer
Set fld = fso.GetFolder(folderspec)
Set fc = fld.Files
For Each f1 In fc
If fso.GetExtensionName(f1.Name) = "ini" Then f1.Delete
Next
End Sub
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 17.02.04 17:27