procedure FileSystem(papka, fajl: string);
const FileAttr: array[0..37] of integer = (1, 2, 3, 4, 5, 6, 7, 32, 33, 34, 35,
36, 37, 38, 39, 128, 288, 289, 290, 2048, 2080, 2081, 2082, 2083, 2084,
2085, 2086, 8198, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 10272,
10273, 10274); // всевозможные атрибуты файлов
{ faReadOnly = $00000001 (1) }
{ faHidden = $00000002 (2) }
{ faSysFile = $00000004 (4) }
{ faVolumeID = $00000008 (8) }
{ faArchive = $00000020 (32) }
{ faAnyFile = $0000003F (63) }
PapkaAttr: array[0..25] of integer = (16, 17, 18, 19, 20, 21, 22, 48, 49,
50, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 8208, 8209, 8210,
8211, 8212, 8213, 8214, 10256); // всевозможные атрибуты папок
{ faDirectory = $00000010 (16) }
var poisk: TSearchRec;
ds: string;
function PrinadlezhitI(n: integer; p: array of integer): boolean;
var i: integer;
begin
Result:=false;
For i:=Low(p) to High(p) do
If n=p[i] then
Result:=true;
end;
begin
ChDir(papka);
If IOResult<>0 then
Exit;
If papka[Length(papka)]<>'\' then
papka:=papka+'\';
If FindFirst(fajl, faAnyFile, poisk)=0 then
Repeat
If PrinadlezhitI(poisk.Attr, FileAttr) then
begin
ds:=FormatDateTime('dd.mm.yyyy hh:nn:ss', FileDateToDateTime(poisk.Time));
Form1.Memo1.Lines.Add(Format('%s%s: размер - %d, дата изменения - %s',
[papka, poisk.Name, poisk.Size, ds]));
end;
Until FindNext(poisk)<>0;
ChDir(papka);
If FindFirst('*', faAnyFile, poisk)=0 then
Repeat
If PrinadlezhitI(poisk.Attr, PapkaAttr) then
If not (poisk.Name='.') and not (poisk.Name='..') then
begin
FileSystem(papka+poisk.Name, fajl);
ChDir(papka);
end;
Until FindNext(poisk)<>0;
FindClose(poisk);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
FileSystem('E:\Temp', '*'); // поиск всех файлов
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
FileSystem('E:\Temp', '*.mp3'); // поиск файлов типа mp3
end;
где
papka - исходная папка;
fajl - файлы, которые нужно найти в исходной папке.
Например, при нажании на 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 poisk.Attr = faSysFile then // найти системные файлы
If poisk.Attr = faAnyFile then // найти все файлы
|