Другие языки программирования и технологии
как программно указать на поддразделы
пишу прогу которая должна искать файлы с расширением бат ну вот в чем беда она ищет только в главном разделе а в поддразделы даж носу не сует вот код как это исправить 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.
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.
Попробуйте рекурсивный метод какой нить, просто берете папку, ищете в ней только папки, если нашли, заходите в нее, далее ищете в ней и т. д Как папки найдены не будут переходите к файлам. Далее поднемаетесь на 1 уровень выше в каталоке, еще еще папки, нашли - заходе и так же ище те, не нашли - ищете папки, после чего снова на уровень выше и т. д и т. д и т. д
PS скорость работы алгоритма будет зависеть от вашей реализации.. .
PS скорость работы алгоритма будет зависеть от вашей реализации.. .
Тут есть пример (работает на Windows, Linux, MacOS X и AmigaOS). http://purebasic.info/phpBB2/viewtopic.php?p=5112#5112
Похожие вопросы
- программно создать объект в C#
- Программа-эта и есть программный код тоесть программный код является программой
- Напишите программный код для урока информатики 11 класса.
- Как программно отправить письмо на E-mail с помощью Visual Basic?
- Можно ли создать искусственный интеллект программно?
- Программные языки для игр
- Пожалуйста проверьте, правильно ли составлен программный код, выходит ошибка "Индекс находится вне границы массива
- Нужна ли алгебра(математика) в программном языке? Можете привести примеры где она нужна?
- Исправьте мне программный код в visual Basiсе пожалуйста!
- Я включаю компьютер и выходит звезда:обновите программное обеспечени,платно!Какэто отключить?