procedure FileSystem(Dir, FileName: string; var sl: TStringList);
var F: TSearchRec;
s: string;
function Directory(Attr: integer): boolean;
begin
Result:=Attr and faDirectory = faDirectory;
end;
begin
ChDir(Dir);
if IOResult<>0 then
Exit;
if Dir[Length(Dir)]<>'\' then
Dir:=Dir+'\';
if FindFirst(FileName, faAnyFile, F)=0 then
repeat
if not Directory(F.Attr) then
begin
s:=FormatDateTime('dd.mm.yyyy hh:nn:ss', FileDateToDateTime(F.Time));
sl.Add(Format('%s%s: размер - %d, дата изменения - %s',
[Dir, F.Name, F.Size, s]));
end;
until FindNext(F)<>0;
if FindFirst('*', faAnyFile, F)=0 then
repeat
if Directory(F.Attr) then
if not (F.Name='.') and not (F.Name='..') then
begin
FileSystem(Dir+F.Name, FileName, sl);
ChDir(Dir);
end;
until FindNext(F)<>0;
FindClose(F);
end;
где:
Dir – исходная папка;
FileName – файлы, которые нужно найти в исходной папке;
sl – список найденных файлов.
Добавим 2 кнопки Button1 и Button2 типа
TButton , и также компонент Memo1: TMemo . Напишем события
обеих кнопок:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
begin
sl:=TStringList.Create;
FileSystem('E:\Temp', '*', sl); // поиск всех файлов
Memo1.Text:=sl.Text;
sl.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var sl: TStringList;
begin
sl:=TStringList.Create;
FileSystem('E:\Temp', '*.mp3', sl); // поиск файлов типа mp3
Memo1.Text:=sl.Text;
sl.Free;
end;
Например, при нажании на 1-ю кнопку текст в
Memo1 будет выглядеть следующим образом:
E:\Temp\112.bmp: размер - 115926, дата изменения - 03.08.2016 09:54:12
E:\Temp\2016.jpg: размер - 58919, дата изменения - 21.09.2015 16:14:14
E:\Temp\Desktop.ini: размер - 78, дата изменения - 17.06.2011 16:55:34
E:\Temp\MAMBO.mp3: размер - 3584418, дата изменения - 08.08.2015 16:06:16
E:\Temp\PIN.png: размер - 22577, дата изменения - 11.01.2016 16:24:36
E:\Temp\Одноклассники.mp3: размер - 4047517, дата изменения - 14.08.2015 12:43:50
E:\Temp\Отпусти.mp3: размер - 3528829, дата изменения - 13.08.2015 12:26:16
E:\Temp\Шепот.txt: размер - 6444, дата изменения - 01.08.2016 18:36:48
E:\Temp\1\Сентябрь - Школьное солнце.mp3: размер - 3824744, дата изменения - 13.08.2015 18:52:34
E:\Temp\1\Я за тобой.mp3: размер - 3325701, дата изменения - 13.08.2015 16:19:24
E:\Temp\2\Project1.cfg: размер - 434, дата изменения - 20.03.2008 22:19:44
E:\Temp\2\Project1.dof: размер - 2015, дата изменения - 20.03.2008 22:19:44
E:\Temp\2\Project1.dpr: размер - 188, дата изменения - 20.03.2008 20:11:12
E:\Temp\2\Project1.exe: размер - 379904, дата изменения - 20.03.2008 22:19:16
E:\Temp\2\Project1.res: размер - 876, дата изменения - 20.03.2008 19:23:48
E:\Temp\2\Project1.~dpr: размер - 188, дата изменения - 20.03.2008 20:11:12
E:\Temp\2\Unit1.dcu: размер - 4601, дата изменения - 20.03.2008 22:17:46
E:\Temp\2\Unit1.ddp: размер - 51, дата изменения - 20.03.2008 22:19:42
E:\Temp\2\Unit1.dfm: размер - 746, дата изменения - 20.03.2008 22:19:16
E:\Temp\2\Unit1.pas: размер - 1459, дата изменения - 20.03.2008 22:17:42
E:\Temp\2\Unit1.~ddp: размер - 51, дата изменения - 20.03.2008 22:18:10
E:\Temp\2\Unit1.~dfm: размер - 718, дата изменения - 20.03.2008 19:33:48
E:\Temp\2\Unit1.~pas: размер - 1459, дата изменения - 20.03.2008 22:17:42
При нажании на 2-ю кнопку текст в Memo1 будет выглядеть следующим образом:
E:\Temp\MAMBO.mp3: размер - 3584418, дата изменения - 08.08.2015 16:06:16
E:\Temp\Одноклассники.mp3: размер - 4047517, дата изменения - 14.08.2015 12:43:50
E:\Temp\Отпусти.mp3: размер - 3528829, дата изменения - 13.08.2015 12:26:16
E:\Temp\1\Сентябрь - Школьное солнце.mp3: размер - 3824744, дата изменения - 13.08.2015 18:52:34
E:\Temp\1\Я за тобой.mp3: размер - 3325701, дата изменения - 13.08.2015 16:19:24
Примечание. Допускается использовать следующие
константы: faReadOnly , faHidden , faSysFile ,
faVolumeID , faDirectory , faArchive ,
faAnyFile . Например:
if F.Attr = faSysFile then // найти системные файлы
if F.Attr = faAnyFile then // найти все файлы
|