![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сканирование дисков [D7, XP]
Chort © (2006-08-07 13:11:00)Здравствуйте! Возможно ли сделать сканирование дисков на наличие .exe файлов и запись результата в разные поля? Если возможно, то каким образом?Спасибо!
Пусик (2006-08-07 15:16:00) [21]
> В чем ошибка?
В том, что у тебя проверяются также и каталоги на соответствие маске.
Используй для поиска маску '*.*' и функцию MatсhesMask.
Chort (2006-08-07 15:07:00) [22]Меня наверно от жары плющит, но не выполняется скан на .exe
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
var
SearchRec : TSearchRec;
begin
if Mask = '' then Mask := '*.*';
if StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
begin
repeat
Application.ProcessMessages;
if (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name)
else if
(SearchRec.Name <> '..') and (SearchRec.Name <> '.exe') then
begin List.Add(StartDir + SearchRec.Name + '\');
ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
end; until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
ScanDir('d:','*.exe',ListBox1.Items);
Label1.Caption := IntToStr(ListBox1.Items.Count);
end;
end.
В чем ошибка?
MBo (2006-08-07 13:20:00) [23]http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19