Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сканирование дисков [D7, XP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо