Алена
Алена

как программно указать на поддразделы

пишу прогу которая должна искать файлы с расширением бат ну вот в чем беда она ищет только в главном разделе а в поддразделы даж носу не сует вот код как это исправить FindRes:=FindFirst('D:\*.bat',faAnyFile,SR);

Олег
Олег

{$apptype console}

uses
SysUtils;

procedure find(path: string);
var
sr: TSearchRec;
od: string;
begin
od := GetCurrentDir;
SetCurrentDir(path);
if FindFirst('*.bat', faAnyFile, sr) = 0 then
repeat
WriteLn(path + '\' + sr. Name);
until FindNext(sr) <> 0;
if FindFirst('*', faAnyFile, sr) = 0 then
repeat
if (sr. Attr = faDirectory) and (sr. Name <> '.') and (sr. Name <> '..') then
find(path + '\' + sr. Name);
until FindNext(sr) <> 0;
SetCurrentDir(od);
end;

begin
find('C:\temp');
WriteLn('*********************');
ReadLn;
end.

Иван
Иван

Тут есть пример (работает на Windows, Linux, MacOS X и AmigaOS). http://purebasic.info/phpBB2/viewtopic.php?p=5112#5112

Ни
Никита

Попробуйте рекурсивный метод какой нить, просто берете папку, ищете в ней только папки, если нашли, заходите в нее, далее ищете в ней и т. д Как папки найдены не будут переходите к файлам. Далее поднемаетесь на 1 уровень выше в каталоке, еще еще папки, нашли - заходе и так же ище те, не нашли - ищете папки, после чего снова на уровень выше и т. д и т. д и т. д

PS скорость работы алгоритма будет зависеть от вашей реализации.. .

Похожие вопросы
Прикладное программное обеспечение используемое в работе секретаря???
как посмотреть программный код файла формата "NES"
Подскажите программное решение для сканирования справок и компоновки их на одном листе.
помогите найти программное обеспечение для lexmark модель x2350
Как указать путь к игре в Steam?
написать программный код на С# для решения задачи
Помогите с принципом программного вычисления факториала.
Помогите найти программный код для программы PureBasic
Смена программного обеспечения ПК. Помогите.
не удалось установить программное обеспечение nvidia, скриншот прилагаю