Можно ли ещё быстрее удалить множество файлов? - VB

Узнай цену своей работы

Формулировка задачи:

Не буду вдаваться в предысторию. Опишу только проблему, сложившуюся в итоге, которая частично решена. На слабеньком ПК возникла необходимость удалить немного мелких файлов размером до 4 Кб. Есть несколько папок. В каждой папке от 6 000 000 до 13 000 000 файлов. Оперативной памяти маловато. Поэтому когда пытаешься открыть Проводник, то explorer.exe начинает съедать память. Shift+Del на папке тоже приводит к этому результату, т.к. сканируется вся папка. Пока что выход нашёл в fso. Там удаление происходит сразу. Вот небольшой пример с секундным таймером и Label:
Листинг программы
  1. Dim Cycle As Long
  2. Private Sub Form_Load()
  3. Dim fso As New FileSystemObject
  4. Dim MyFolder As Folder
  5. Dim MyFile As File
  6. Cycle = 0
  7. Set MyFolder = fso.GetFolder("D:\2")
  8. Me.Show
  9. For Each MyFile In MyFolder.Files
  10. Me.Caption = MyFile.Name
  11. MyFile.Delete
  12. Cycle = Cycle + 1
  13. DoEvents
  14. Next
  15. End Sub
  16. Private Sub Timer1_Timer()
  17. Label1.Caption = CStr(Cycle) & " файлов в секунду"
  18. Cycle = 0
  19. End Sub
В результате удаляется от 300 до 450 файлов в секунду. Чтобы папка сканировалась - я не заметил. Вопрос в том,

возможно ли ещё быстрее удалить файлы?

Решение задачи: «Можно ли ещё быстрее удалить множество файлов?»

textual
Листинг программы
  1. md C:\EmptyDir
  2. robocopy C:\EmptyDir C:\DirTodelete /mir /r:0 /w:0 /e /NJS /NP /NFL /NDL /NS >NUL 2>NUL

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы