Другие языки программирования и технологии
вопрос для программистов (delphi)
у меня проблема.мне нужно вытянуть из каталога (папки) список всех файлов с одним расширением и засунуть все в массив.ОЧЕНЬ НУЖНО!!!Нашел похожие процедуры: FindFirst и FindNext, но немогу понять, как ими воспользоваться
Вот скопировал в DelphiWorde - разбири процедуру и если нужно поменяй в ней поиск по всем каталогам, на поиск в указанном.
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Поиск файлов по маске по всему дереву каталогов, начиная с указанного
Продедура производит фалов по маске в указанном и во всех его вложенных
каталогах.
Параметр StartFolder указывает на начальный каталог поиска,
параметр Mask указывает маску поиска (например '*.pas'),
параметр List указывает на список строк, в которых будут записаны
результаты поиска,
Необязательный параметр ScanSubFolders указывает на необходимость
поиска во вложенных подкаталогах.
Зависимости: Windows, SysUtils, Classes, Masks
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 29 апреля 2002 г.
***************************************************** }
procedure FindFiles(StartFolder, Mask: string; List: TStrings;
ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
List.BeginUpdate;
try
StartFolder := IncludeTrailingBackslash(StartFolder);
FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
try
while FindResult = 0 do
with SearchRec do
begin
if (Attr and faDirectory) <> 0 then
begin
if ScanSubFolders and (Name <> '.') and (Name <> '..') then
FindFiles(StartFolder + Name, Mask, List, ScanSubFolders);
end
else
begin
if MatchesMask(Name, Mask) then
List.Add(StartFolder + Name);
end;
FindResult := FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
List.EndUpdate;
end;
end;
Пример использования:
procedure TForm1.Button1Click(Sender: TObject);
begin
FindFiles('C:\Program Files\', '*.exe', memo1.Lines, true);
end;
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Поиск файлов по маске по всему дереву каталогов, начиная с указанного
Продедура производит фалов по маске в указанном и во всех его вложенных
каталогах.
Параметр StartFolder указывает на начальный каталог поиска,
параметр Mask указывает маску поиска (например '*.pas'),
параметр List указывает на список строк, в которых будут записаны
результаты поиска,
Необязательный параметр ScanSubFolders указывает на необходимость
поиска во вложенных подкаталогах.
Зависимости: Windows, SysUtils, Classes, Masks
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 29 апреля 2002 г.
***************************************************** }
procedure FindFiles(StartFolder, Mask: string; List: TStrings;
ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
List.BeginUpdate;
try
StartFolder := IncludeTrailingBackslash(StartFolder);
FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
try
while FindResult = 0 do
with SearchRec do
begin
if (Attr and faDirectory) <> 0 then
begin
if ScanSubFolders and (Name <> '.') and (Name <> '..') then
FindFiles(StartFolder + Name, Mask, List, ScanSubFolders);
end
else
begin
if MatchesMask(Name, Mask) then
List.Add(StartFolder + Name);
end;
FindResult := FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
List.EndUpdate;
end;
end;
Пример использования:
procedure TForm1.Button1Click(Sender: TObject);
begin
FindFiles('C:\Program Files\', '*.exe', memo1.Lines, true);
end;
Елси Вам нужно просто узнать все имена файлов по маске в определённой директории и загрузить их в массив, то стучите в агент, кину примерчик. Или на мыло.
Похожие вопросы
- У меня вопрос к программистам DELPHI.
- Как вы считаете братья программисты Delphi популярный язык или самый лучший !
- помогите программисты!) delphi 7
- Components в Delphi. при защите лабораторной возник вопрос... конкретно для Delphi. Что есть массив Components?
- Вопрос к программистам...
- !! Вопрос для программистов (Нужен совет)
- Вопрос к программистам :)
- Вопрос про Borland Delphi и Lazarus
- ПОСЛЕДНИЙ ВОПРОС ДЛЯ ПРОГРАММИСТОВ :) {не пугайтесь объёма мини статьи для новичков эта мини ст будет полезна}
- Вопрос исключительно программистам!
FindFirst(StartFolder + Mask, faAnyFile, SearchRec);