- Сообщения
- 3,556
- Репутация
- 628
нашел в инете функцию поиска файлов. накидал примерную dll
не могу понять как сделать на выходе список файлов. справку читал. но пока увы.
вот функция в "моей редакции".
не могу понять как сделать на выходе список файлов. справку читал. но пока увы.
вот функция в "моей редакции".
Код:
Procedure Direct(Directory.s)
If Right(Directory.s,1)<>"\":Directory.s + "\":EndIf ; Если в конце пути (в конце строки) нет символа '\', то добавлям его.
z=ExamineDirectory(#PB_Any, Directory.s, "*.*") ; Начало сканирования папки, путь к которой указан в строковой переменной Directory.
If z ; Идентификатор (число) сканируемой папки. Он нужен для других функций, например NextDirectoryEntry().
While NextDirectoryEntry(z) ; Переходим к следующему объекту (файлу или папке). Если больше объектов нет - цикл прервется.
EntryName.s=DirectoryEntryName(z) ; Имя файла или папки.
;------------------------------------------
If EntryName = "." Or EntryName = ".." ; Если это текущая (".") или родительская ("..") папка,
Continue ; то досрочно переходим в начало цикла While-Wend.
EndIf
;------------------------------------------
Type=DirectoryEntryType(z) ; Узнаем тип объекта (файл или папка).
If Type = #PB_DirectoryEntry_Directory ; Если это папка,
Direct(Directory.s+EntryName) ; то процедура вызывает саму себя (рекурсия) для сканирования этой папки.
ElseIf Type = #PB_DirectoryEntry_File ; Если это файл,
;-------------------------------------------
FileName.s = Directory.s+EntryName ; то получаем полный путь к файлу.
WriteStringN(0,FileName)
EndIf
Wend
FinishDirectory(z) ; Освобождение ресурсов, используемых при сканировании папки.
EndIf
EndProcedure
ProcedureDLL.s Search (PathF.s,FileW.s)
CreateFile(0,FileW)
OpenFile(0,FileW)
Direct(PathF)
CloseFile(0)
EndProcedure