Показать сообщение отдельно
  #3  
Старый 26.07.2007, 18:34
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Код:
function FilesInDir(sMask, sDirPath: String; var iFilesCount: Integer; var saFound: TStrings; bRecurse: Boolean = True): Integer;
var
  sr: TSearchRec;

begin
  try
    if FindFirst(sDirPath + sMask, faAnyFile, sr) = 0 then
    begin
      repeat
        if  (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr and faDirectory = 0) then
        begin
          Inc(iFilesCount);
          if saFound <> nil then
          begin
            if saFound.IndexOf(sDirPath + sr.Name) < 0 then
              saFound.Add(sDirPath + sr.Name);

          end;
        end
        else
        begin
          if (sr.Name <> '.') and (sr.Name <> '..') and (bRecurse) then
            FilesInDir(sMask,sDirPath + sr.name + '\',iFilesCount,saFound,bRecurse);
        end;
      until
        FindNext(sr) <> 0;
      end;
    FindClose(sr);
  except
    Result := -1;
  end;
end;

sMask - маска, напр. *.*
sDirPath - путь до папки
var iFilesCount - кол-во найденных файлов;
var saFound - список путей до найденных фалов;
bRecurse: включая подкаталоги или нет
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием