Поиск папки/файла в Delphi
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Поиск папки/файла в Delphi - 2005-04-09 16:32:50
|
|
|
AsteroID
Сообщений: 42
Оценки: 0
Присоединился: 2004-09-09 20:31:51
|
Как в Delphi организовать поиск папки/файла на всех дисках?
|
|
|
Поиск папки/файла в Delphi - 2005-04-09 17:53:29
|
|
|
Jeniziх
Сообщений: 33
Оценки: 0
Присоединился: 2005-04-08 23:05:10
|
FindFirstFile / FindNextFile и рекурсия тебе поможет…
|
|
|
Поиск папки/файла в 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
|
|
|
Поиск папки/файла в 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;
|
|
|
Поиск папки/файла в 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;
|
|
|
Поиск папки/файла в Delphi - 2005-04-10 14:05:35
|
|
|
Jeniziх
Сообщений: 33
Оценки: 0
Присоединился: 2005-04-08 23:05:10
|
а узнать где стоит винда можно GetwindоwsDirectory
|
|
|
Поиск папки/файла в 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;
|
|
|
|
|