Получение списка файлов и информации о них}
procedure
TForm1
.
UpdateFile(LV:TListView;aPath:
String
);
var
Handle:THandle;
FindData:TWin32FindData;
temp_ext,Temp_Cap,result:
String
;
Folders:TStringList;
i,te:
Byte
;
begin
LV
.
Items
.
BeginUpdate;
LV
.
Items
.
Clear;
Handle:=FindFirstFile(
PChar
(aPath+
'*.*'
),FindData);
if
Handle<>INVALID_HANDLE_VALUE
then
try
Folders:=TStringList
.
Create;
while
FindNextFile(Handle,FindData)
do
begin
Temp_Cap:=ExtractFileName(FindData
.
cFileName);
temp_ext:=ExtractFileExt(FindData
.
cFileName);
if
(FindData
.
dwFileAttributes
and
faDirectory)=faDirectory
then
Folders
.
Append(Temp_Cap)
else
with
LV
.
Items
.
Add
do
begin
if
(FindData
.
dwFileAttributes
and
faDirectory)<>faDirectory
then
begin
for
te:=
1
to
length(Temp_Cap)
do
if
Temp_Cap[te]=
'.'
then
Caption:=copy(Temp_Cap,
1
,te-
1
);
SubItems
.
Add(Copy(temp_ext,
2
,Length(temp_ext)-
1
));
SubItems
.
Add(FloatToStrF(FindData
.
nFileSizeHigh+FindData
.
nFileSizeLow,ffNumber,
18
,
0
));
end
else
SubItems
.
Add(
''
);
SubItems
.
Add(FileTimeToDateTimeStr(FindData
.
ftLastWriteTime));
Result:=
''
;
if
(FILE_ATTRIBUTE_ARCHIVE
and
FindData
.
dwFileAttributes)>
0
then
Result:=Result+
'a'
else
Result:=Result+
'-'
;
if
(FILE_ATTRIBUTE_READONLY
and
FindData
.
dwFileAttributes)>
0
then
Result:=Result+
'r'
else
Result:=Result+
'-'
;
if
(FILE_ATTRIBUTE_HIDDEN
and
FindData
.
dwFileAttributes)>
0
then
Result:=Result+
'h'
else
Result:=Result+
'-'
;
if
(FILE_ATTRIBUTE_SYSTEM
and
FindData
.
dwFileAttributes)>
0
then
Result:=Result+
's'
else
Result:=Result+
'-'
;
SubItems
.
Add(Result);
end
;
end
;
for
i:=
0
to
Folders
.
count-
1
do
with
LV
.
Items
.
insert(i)
do
begin
SubItems
.
Add(
'[Папка]'
);
SubItems
.
Add(
''
);
SubItems
.
Add(FileTimeToDateTimeStr(FindData
.
ftCreationTime));
Caption:=Folders[i];
end
;
Folders
.
Free;
finally
LV
.
Items
.
EndUpdate;
end
;
end
;