Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Поиск файлов в папке
destroy
Вставить ник
сообщение 29:03:2008, 15:08
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 17:03:2008
Пользователь №: 15 943



Репутация: - 0 +


Привет всем.

Вообщем имеется код, для поиска файлов в папке и под папках

CODE

procedure FindFiles(StartFolder, Mask: string; List: TStrings;
ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
s2s: integer;
s3s,s_test: string;
s4s: 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;




Подскажите пожалуйста как процедурку модифицировать, чтобы при поиске файлов писалось еще и название папки.
Тоесть идет в начале название папки а потом файлы, которые найдены. Но важный момент. Если в папке нет
файлов - название папки добавлять не надо.

Чтобы добавлялась папка я знаю как сделать. А вот как сделать чтобы папка не добавлялась если в ней не найдено файлов?

Сообщение отредактировал destroy - 29:03:2008, 15:09
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 2)
sax_ol
Вставить ник
сообщение 30:03:2008, 09:53
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Надо использовать еще один if.
Подняться вверх 
 
Сообщение #2
dwd
Вставить ник
сообщение 14:05:2008, 09:15
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 4
Регистрация: 14:05:2008
Пользователь №: 17 259
Специализация: Системный администратор



Репутация: - 0 +


Элементарно: Добавить ExtractFilePath(SearchRec.Name) - это и есть путь к файлу

Чтобы не отображались пустые папки нужно задать маску по расширению if ExtractFileExt(SearchRec.Name)='..' или проверять длинну расширения файла if Length(ExtractFileExt(SearchRec.Name))<2 и если расширение короче 2-х символов то не выполнять вывод (второй способ подходит только в том случае, если вас не интересует поиск файлов без расширения, ведь такие тоже бывают)

Сообщение отредактировал dwd - 14:05:2008, 09:16
Подняться вверх 
 
Сообщение #3


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 08:37
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net