Цитата:
Сообщение от HTTqp
Накидал код, но при выводе время создания папок у всех одинаково, как только не крутил уже все одно и тоже.
|
Имена папок ты добавляешь в список типа TStringList, но никакой другой информации о папках ты не сохраняешь - откуда же ей потом взяться когда доходит дело до цикла добавления списка папок в TListView ?
Я думаю лучше обойтись без обходного списка и добавлять и папки и файлы сразу в TListView, или сразу в нужную позицию, или же добавлять как придётся, а в конце отсортировать в нужном порядке.
Вот пример по первому варианту:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
sr: TSearchRec;
DirIdx: Integer;
sSize, s: String;
iSize: Int64;
li: TListItem;
begin
LV.Items.BeginUpdate;
try
LV.Items.Clear;
if FindFirst(aPath + '*.*', faAnyFile, sr) = NO_ERROR then
try
DirIdx := 0;
repeat
if (sr.Attr and faDirectory) = 0 then
begin
li := LV.Items.Add;
Int64Rec(iSize).Lo := sr.FindData.nFileSizeLow;
Int64Rec(iSize).Hi := sr.FindData.nFileSizeHigh;
sSize := IntToStr(iSize);
end
else
begin
if (sr.Name = '.') or (sr.Name = '..') then Continue;
li := LV.Items.Insert(DirIdx);
Inc(DirIdx);
sSize := '[Папка]';
end;
li.Caption := ChangeFileExt(sr.Name, '');
li.SubItems.Add(ExtractFileExt(sr.Name));
li.SubItems.Add(sSize);
s := '----';
if (sr.Attr and faArchive) <> 0 then s[1] := 'a';
if (sr.Attr and faReadOnly) <> 0 then s[2] := 'r';
if (sr.Attr and faHidden) <> 0 then s[3] := 'h';
if (sr.Attr and faSysFile) <> 0 then s[4] := 's';
li.SubItems.Add(s);
li.SubItems.Add(DateTimeToStr(FileDateToDateTime(sr.Time)));
until FindNext(sr) <> NO_ERROR;
finally
FindClose(sr);
end;
finally
LV.Items.EndUpdate;
end;
end;