Получить список всех файлов в каталоге и его подкаталогах - VB

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

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

Привет всем, не знаю как получить список всех файлов в папке и ее подпапках. Хочу посчитать эти файлы и потом копировать с прогрессбаром, но завис на подсчете. Плиииз, хелп ми! Нарыл только это:
Листинг программы
  1. Sub Files_and_Folders()
  2. 'выясняем количество файлов и папок в папке ...
  3. Dim FolderPath As String
  4. FolderPath = "C:\"
  5. Dim FileSystemObject As Object
  6. FileSystemObject = CreateObject("Scripting.FileSystemObject")
  7. Dim f As Object
  8. f = FileSystemObject.GetFolder(FolderPath)
  9. Dim fld As Object
  10. Dim Папки As Integer
  11. For Each fld In f.SubFolders
  12. Папки = Папки + 1
  13. Next
  14. Dim fl As Object
  15. Dim Файлы As Integer
  16. For Each fl In f.Files
  17. Файлы = Файлы + 1
  18. Next
  19.  
  20. FileSystemObject = Nothing
  21. f = Nothing
  22. MsgBox("Папки: " & Папки & Chr(13) & "Файлы: " & Файлы)
  23. End Sub
Но здесь лишь в общем. А куда двигаться дальше я не пойму.

Решение задачи: «Получить список всех файлов в каталоге и его подкаталогах»

textual
Листинг программы
  1.      '::: Код VBScript
  2.  
  3.      StartFolder="D:\Off_VBA\Г‡Г*Г¤Г*Г·ГЁ"    ' Г—ГІГ® Г±ГЄГ*Г*èðîâГ*ГІГј
  4.     Fout="C:\list.txt"                 ' ГЉГіГ¤Г* Г§Г*ГЇГЁГ±Г*ГІГј ðåçóëüòГ*ГІ
  5.     '::: ГЌГ*Г·Г*ëî
  6.     Set aFso =CreateObject("Scripting.FileSystemObject")
  7.      Set aDict=CreateObject("Scripting.Dictionary")
  8.      Set sFld=aFso.GetFolder(StartFolder)
  9.      Scan_Fold sFld
  10.      Set txtOut = aFSO.CreateTextFile(Fout)
  11.      n=aDict.Count
  12.      aKeys=aDict.Keys
  13.      aItems=aDict.Items
  14.      For i=0 to n-1
  15.          txtOut.WriteLine aKeys(i) & " " & aItems(i)
  16.      Next
  17.      txtOut.Close
  18.      MsgBox "OK!"
  19.  
  20.      '::: ÏîäïðîãðГ*ììû
  21.    
  22. Sub Scan_Fold(aFolder)  '::: ÑêГ*Г*èðîâГ*ГІГј ГЇГ*ГЇГЄГі
  23.    For each fld in aFolder.SubFolders
  24.         Set aFil=Fld.Files
  25.         Scan_Files aFil
  26.         Scan_Fold fld
  27.     Next
  28. End Sub
  29.  
  30. Sub Scan_Files(Fils)    '::: ГЋГЎГ°Г*áîòГ*ГІГј ГґГ*éëû ГЇГ*ГЇГЄГЁ
  31.    for each fil in Fils
  32.         dFil=fil.DateCreated
  33.         tmp=Left(Cstr(dFil),10)
  34.         if aDict.Exists(tmp) then
  35.            n=aDict.Item(tmp)+1
  36.            aDict.Remove tmp
  37.            aDict.add tmp,n
  38.         else
  39.            aDict.add tmp,1
  40.         end if
  41.     next
  42. End Sub

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


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

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

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

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

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

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