Подскажите как отсортировать по методу сначала папки потом файлы. Код написал а сортировку не получается осуществить, читал пробывал что в инете есть но увы. Код расписан так что все вроде понятно
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
WFD:WIN32_Find_Data;
HFile:THandle;
Attr,Path:String;
begin
ListView1.Items.BeginUpdate;{Начинаем прорисовку}
ListView1.Items.Clear;
Path:=IncludeTrailingPathDelimiter('C:\Windows');{Добавляем '\' при его отсутствиии}
HFile:=FindFirstFile(PChar(Path+'*.*'),WFD);{Ищем файлы только в указанном каталоге}
if HFile<>INVALID_HANDLE_VALUE then {Проверяем отсутствие ошиьок}
begin
repeat
if (WFD.dwFileAttributes and faHidden)<>2 then{Условие показыать\не показывать скрытые файлы}
if StrPas(WFD.cFileName)<>'.' then
with ListView1.Items.Add do
begin
if (WFD.dwFileAttributes and faDirectory)<>faDirectory then
begin
Caption:=WFD.cFileName;
SubItems.Add(ExtractFileExt(WFD.cFileName));{Выделяем расширение}
SubItems.Add('размер');{Размер файла}
end else
begin
Caption:=(WFD.cFileName);{Имя папки}
SubItems.Add('[Папка]');{Указываем что это папка}
SubItems.Add('размер');
end;
SubItems.Add('Дата');{Время создания папки\файла}
Attr:='----';
if (WFD.dwFileAttributes and faArchive)<>0 then Attr[1]:='a';{Архивный}
if (WFD.dwFileAttributes and faReadOnly)<>0 then Attr[2]:='r';{Только чтение}
if (WFD.dwFileAttributes and faHidden)<>0 then Attr[3]:='h';{Скрытый}
if (WFD.dwFileAttributes and faSysFile)<>0 then Attr[4]:='s';{Системный}
SubItems.Add(Attr);{Атрибуты файла\папки}
end;
application.ProcessMessages; { Чтобы форма не сильно тормозила во время поиска}
until FindNextFile(HFile,WFD)<>True;
Winapi.Windows.FindClose(HFile);
end;
ListView1.Items.EndUpdate;{Заканчиваем прорисовку файлов}
end;