Можно ли ещё быстрее удалить множество файлов? - VB
Формулировка задачи:
Не буду вдаваться в предысторию. Опишу только проблему, сложившуюся в итоге, которая частично решена.
На слабеньком ПК возникла необходимость удалить немного мелких файлов размером до 4 Кб.
Есть несколько папок. В каждой папке от 6 000 000 до 13 000 000 файлов. Оперативной памяти маловато. Поэтому когда пытаешься открыть Проводник, то explorer.exe начинает съедать память. Shift+Del на папке тоже приводит к этому результату, т.к. сканируется вся папка.
Пока что выход нашёл в fso. Там удаление происходит сразу. Вот небольшой пример с секундным таймером и Label:
В результате удаляется от 300 до 450 файлов в секунду. Чтобы папка сканировалась - я не заметил.
Вопрос в том,
Листинг программы
- Dim Cycle As Long
- Private Sub Form_Load()
- Dim fso As New FileSystemObject
- Dim MyFolder As Folder
- Dim MyFile As File
- Cycle = 0
- Set MyFolder = fso.GetFolder("D:\2")
- Me.Show
- For Each MyFile In MyFolder.Files
- Me.Caption = MyFile.Name
- MyFile.Delete
- Cycle = Cycle + 1
- DoEvents
- Next
- End Sub
- Private Sub Timer1_Timer()
- Label1.Caption = CStr(Cycle) & " файлов в секунду"
- Cycle = 0
- End Sub
возможно ли ещё быстрее удалить файлы?
Решение задачи: «Можно ли ещё быстрее удалить множество файлов?»
textual
Листинг программы
- md C:\EmptyDir
- robocopy C:\EmptyDir C:\DirTodelete /mir /r:0 /w:0 /e /NJS /NP /NFL /NDL /NS >NUL 2>NUL
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д