Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Поиск папки/файла в Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Поиск папки/файла в Delphi
Имя
Сообщение << Старые топики   Новые топики >>
Поиск папки/файла в Delphi - 2005-04-09 16:32:50   
AsteroID

Сообщений: 42
Оценки: 0
Присоединился: 2004-09-09 20:31:51
Как в Delphi организовать поиск папки/файла на всех дисках?
Post #: 1
Поиск папки/файла в Delphi - 2005-04-09 17:53:29   
Jeniziх

Сообщений: 33
Оценки: 0
Присоединился: 2005-04-08 23:05:10
FindFirstFile / FindNextFile и рекурсия тебе поможет…
Post #: 2
Поиск папки/файла в Delphi - 2005-04-09 22:14:20   
Ct757

Сообщений: 135
Оценки: 0
Присоединился: 2005-03-29 19:39:30
Можно поюзать функцию SearchTreeForFile из библиотеки dbghelp.dll.

Но лучше конечно с FindFirst/FindNext. Вот пример - http://delphiworld.narod.ru/base/scan_dir.html
Post #: 3
Поиск папки/файла в Delphi - 2005-04-10 11:40:02   
AsteroID

Сообщений: 42
Оценки: 0
Присоединился: 2004-09-09 20:31:51
Так в этом примере сканируется только один диск. Возникает вопрос:А как узнать сколько лог. дисков в системе.(или на каком стоит винда)?

procedure ScanDir(Dir: string);
var
SearchRec: TSearchRec;
begin
if Dir <> '' then
if Dir[length(Dir)] <> '\' then
Dir := Dir + '\';

if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.name = '.') or (SearchRec.name = '..') then
continue;

if (SearchRec.Attr and faDirectory) <> 0 then
ScanDir(Dir + SearchRec.name)
//we found Directory: "Dir+SearchRec.name"
else
Showmessage(Dir + SearchRec.name);
//we found File: "Dir+SearchRec.name"

until
FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;

procedure TForm1.Button1Click(Sender: TоЬjесt);
begin
ScanDir('c:');
end;
Post #: 4
Поиск папки/файла в Delphi - 2005-04-10 13:02:19   
Ct757

Сообщений: 135
Оценки: 0
Присоединился: 2005-03-29 19:39:30
AsteroID

Получить список доступных дисков можно с помощью функции GetLogicalDrives, например так:

var
s: String;
d: DWORD;

begin
d:=GetLogicalDrives;
for i:=0 to 25 do
if (d and (1 shl i))<>0 then
begin
s:=Char(i+65)+':\';
ScanDir(s);
end;
end;
Post #: 5
Поиск папки/файла в Delphi - 2005-04-10 14:05:35   
Jeniziх

Сообщений: 33
Оценки: 0
Присоединился: 2005-04-08 23:05:10
а узнать где стоит винда можно GetwindоwsDirectory
Post #: 6
Поиск папки/файла в Delphi - 2005-04-11 16:19:52   
AsteroID

Сообщений: 42
Оценки: 0
Присоединился: 2004-09-09 20:31:51
Спасибо пацаны, я вот ещё что нашёл:

procedure TForm1.Button1Click(Sender: TоЬjесt);

var
buffer: array [0..255] of char;
FileToFind: string;
begin
GetwindоwsDirectory(buffer, SizeOf(buffer));
FileToFind := FileSearch(Edit1.Text, GetCurrentDir + ';' + buffer);
if FileToFind = '' then
ShowMessage('Couldn''t find ' + Edit1.Text + '.')
else
ShowMessage('Found ' + FileToFind + '.');

end;
Post #: 7
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Поиск папки/файла в Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.