Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

Поиск файлов   Найти похожие ветки 

 
Dot   (2005-11-05 17:17) [0]

Здравствуйте мастера!
Меня интересует вопрос поиска файла во всех директориях.
Вот я набросал код
------------
program FindFiles;
uses Windows;
var
File_data: _WIN32_FIND_DATA;
File_Name: PChar;
hFind    : Cardinal;
begin

File_Name:="*.txt";

hFind := FindFirstFile(File_Name, File_Data);
if hFind = INVALID_HANDLE_VALUE then
 begin
   MessageBoxA(0, PChar(GetLastError()), "!", 0);
   exit;
 end
else
  begin
   MessageBoxA(0, File_Data.cFileName,"!",0);
   FindClose(hFind);
  end;
end.
------------------------
Не совершенство конечно, но дело не в этом. Все это происходит в пределах текущей директории проекта..
Вот и вопрос . помогите советом или кодом (что лучше всего). Как искать во всех(заданных) директориях.

Заранее огромное спасибо.
З.Ы. использую только модуль Windows, естественно никаких TSearchRec итд


 
Zeqfreed ©   (2005-11-05 17:52) [1]

Dot   (05.11.05 17:17)
program flist;

{$APPTYPE CONSOLE}

uses
 Windows;

procedure Output(const FileName : String);
var
 p : PChar;
begin
 p := PChar(FileName);
 CharToOEM(p, p);
 WriteLn(p);
end;

procedure AddTrailingBackslash(var Str : String);
begin
 if not (Str[length(Str)] in ["/", "\"]) then Str := Str + "\";
end;

procedure DoSearch(Directory : String; const SearchSubdirectories : Boolean);
var
 fd : TWin32FindData;
 h : Cardinal;
begin
 AddTrailingBackslash(Directory);

 Output("Поиск по директории: " + Directory);
 h := FindFirstFile(PChar(Directory + "*"), fd);
 if (h <> INVALID_HANDLE_VALUE) then begin
  repeat
   if (fd.cFileName[0] <> ".") and (fd.cFileName <> "..") then
    if ((fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) then begin
     DoSearch(Directory + fd.cFileName, SearchSubdirectories);
    end else
     Output(fd.cFileName);
  until (FindNextFile(h, fd) = FALSE);
 end;
end;

begin
 DoSearch(ParamStr(1), true);
 ReadLn;
end.



Страницы: 1 вся ветка

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1130949233
Mecter
2005-11-02 19:33
2005.11.20
Смена изображений


14-1130749100
Opilki_Inside
2005-10-31 11:58
2005.11.20
Интеграция Help-файлов с приложением


2-1131264952
злобная танька
2005-11-06 11:15
2005.11.20
TMethod


14-1130421767
ПЛОВ
2005-10-27 18:02
2005.11.20
Странная ситуация с материнкой


14-1130705366
Джо
2005-10-30 23:49
2005.11.20
Юным дарованиям посвящается.