Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поделитесь быстрым алгоритмом перебора файлов и подпапок / 17 сообщений из 17, страница 1 из 1
21.10.2005, 17:33:39
    #33338136
Pantalone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Есть алгоритм, но он довольно корявый. Может у кого есть примерчик перебора всех файлов и папок, включая скрытые и системные?
...
Рейтинг: 0 / 0
21.10.2005, 17:48:27
    #33338176
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    Dim strFile As String
    
    strFile = Dir(OuterPath)
    Do Until strFile = ""
        Debug.Print strFile
        strFile = Dir
    Loop

...
Рейтинг: 0 / 0
24.10.2005, 15:01:43
    #33340498
squid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Быстро это с использованием WinApi + рекурсия

см и ищи примеры по функциям

Public Declare Function APIFindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function APIFindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function APIFindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long
...
Рейтинг: 0 / 0
25.10.2005, 11:40:31
    #33342034
Поделитесь быстрым алгоритмом перебора файлов и подпапок
http://blackbeltvb.com/dirview.htm
...
Рейтинг: 0 / 0
25.10.2005, 12:36:47
    #33342212
Anton Lukyanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Можно в сторону FSO посмотреть
...
Рейтинг: 0 / 0
25.10.2005, 12:49:54
    #33342261
AndreyF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Где-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Sub Main()
    Dim fso As New Scripting.FileSystemObject
    
    PrintChilds fso.GetFolder("C:\Program Files")
End Sub

Private Sub PrintChilds(ff As Scripting.Folder)
    Dim f As Scripting.File, fo As Scripting.Folder
    
    For Each f In ff.Files
        Debug.Print f.Path
    Next f
    For Each fo In ff.SubFolders
        Debug.Print fo.Path
        PrintChilds fo
    Next fo
End Sub

Скорость - примерно одинакова любыми методами Dir/FindFirst или как выше (FSO). Но так однозначно проще...
...
Рейтинг: 0 / 0
25.10.2005, 12:59:37
    #33342306
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
C FSO скорость значительно уступает API. Я пробовал разные варианты и пожалуй с FindFirstFile,FindNextFile получается лучше всего. Конечно скорость заметна при значительном колличестве файлов и папок. Я тестил на ~10000 папок с ~1000000 файлов.
...
Рейтинг: 0 / 0
25.10.2005, 13:33:03
    #33342460
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
AndreyFГде-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Sub Main()
    Dim fso As New Scripting.FileSystemObject
    
    PrintChilds fso.GetFolder("C:\Program Files")
End Sub

Private Sub PrintChilds(ff As Scripting.Folder)
    Dim f As Scripting.File, fo As Scripting.Folder
    
    For Each f In ff.Files
        Debug.Print f.Path
    Next f
    For Each fo In ff.SubFolders
        Debug.Print fo.Path
        PrintChilds fo
    Next fo
End Sub

Скорость - примерно одинакова любыми методами Dir/FindFirst или как выше (FSO). Но так однозначно проще...

подскажите пожалуста какую referens надо подключить что бы это заработало?
...
Рейтинг: 0 / 0
25.10.2005, 14:23:25
    #33342667
Pantalone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Решил пока через Dir, ничего другого не понадобилось, правда выглядит довольно криво, Dir не для этого. При выходе из рекурсии Dir начинает перебор с начала папки почему-то.
...
Рейтинг: 0 / 0
25.10.2005, 14:36:40
    #33342715
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
авторподскажите пожалуста какую referens надо подключить что бы это заработало? Microsoft Scripting Runtime. Неужто из кода не понятно? Но этот метод самый меленный из всех.
авторСкорость - примерно одинакова любыми методами Dir/FindFirst или как выше (FSO). Абсолютно с Вами не согласен. Попробуйте с ~10000 папок глубокой вложенности с ~1000000 файлами. Разницу между АПИ и ФСО заметно сразу.
...
Рейтинг: 0 / 0
25.10.2005, 15:20:55
    #33342867
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
AndreyMp авторподскажите пожалуста какую referens надо подключить что бы это заработало? Microsoft Scripting Runtime. Неужто из кода не понятно? Но этот метод самый меленный из всех.

Спасибо
...
Рейтинг: 0 / 0
09.01.2006, 21:01:45
    #33473017
Ghost_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Доброе время суток всем.
Подскажите Please начинающему юзеру как эти алгоритмы работают:
второй и третий с первым все понятно, а то они оба у меня ошибки вызывают.
...
Рейтинг: 0 / 0
09.01.2006, 21:27:50
    #33473031
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
PantaloneЕсть алгоритм, но он довольно корявый. Может у кого есть примерчик перебора всех файлов и папок, включая скрытые и системные?Если есть необходимость пробегать дерево папок вручную, подобно тому как мы это делаем в експлорере, то нет надобности строить всю древовидную структуру. Можно ее перестраивать в зависимости от того в какую дирректорию заходим. К примеру если мы в корне, то читаем содержимое корня и выводим, далее мы выбираем одну из доступных директорий, для того чтоб ознакомится с его содержимым, делаем это также как делали для корня. Все будет летать, если задача у вас другай, то потестируйте fso либо с API FindXXX
...
Рейтинг: 0 / 0
10.01.2006, 11:59:28
    #33473774
AndreyF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
AndreyMpC FSO скорость значительно уступает API. Я пробовал разные варианты и пожалуй с FindFirstFile,FindNextFile получается лучше всего. Конечно скорость заметна при значительном колличестве файлов и папок. Я тестил на ~10000 папок с ~1000000 файлов.

Вообще-то когда я тестил то результат был практически одинаков.

Но FSO стараюсь не использовать из-за того что несколько раз натыкался на глюки...
...
Рейтинг: 0 / 0
08.02.2006, 21:58:58
    #33532639
Ghost_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
Please выложите пример перебора фаилов для:

Public Declare Function APIFindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function APIFindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function APIFindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long
...
Рейтинг: 0 / 0
09.02.2006, 09:32:47
    #33533028
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
а если использовать команду ОС
Код: plaintext
dir /s > qwe.txt
что будет быстрее с помощью ф-ций или командой?
...
Рейтинг: 0 / 0
10.02.2006, 11:26:05
    #33536478
Ghost_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поделитесь быстрым алгоритмом перебора файлов и подпапок
HandKotа если использовать команду ОС
Код: plaintext
dir /s > qwe.txt
что будет быстрее с помощью ф-ций или командой?

нет не поканает
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поделитесь быстрым алгоритмом перебора файлов и подпапок / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]