Есть вот такой код для сохранения списка файлов и папок в определённой директории в текстовый файл
Код:
procedure GetFileList(DirList: string; ListBox1: TListBox); // листинг директории, например GetFileList('C:\*.*')
begin
ListBox1.Clear;
ListBox1.Perform(LB_DIR,
DDL_ARCHIVE +
DDL_DIRECTORY +
DDL_DRIVES +
DDL_EXCLUSIVE +
DDL_HIDDEN +
DDL_READONLY +
DDL_READWRITE +
DDL_SYSTEM,
Integer(DirList));
ListBox1.Items.SaveToFile(GetWinDir+'\temp\DirList.txt');
end;
Приходится делать на форме невидимый ListBox
Я так понимаю, всё можно сделать
легче и проще через StringList
Код:
s.add(DirList+'='+IntToStr(DDL_ARCHIVE +
DDL_DIRECTORY +
DDL_DRIVES +
DDL_EXCLUSIVE +
DDL_HIDDEN +
DDL_READONLY +
DDL_READWRITE +
DDL_SYSTEM))
TstringList.Create.SaveToFile(GetWinDir+'\temp\DirList.txt');
но почему-то этот код не работает...
файл создается, но в нем что-то типа
C:\=49207 ........
Можно сделать еще вот так
Код:
procedure GetFileList(DirList: string); // листинг директории, например GetFileList('C:\*.*')
var
SR: TSearchRec;
List: TStringList;
Mask:string;
begin
List.Clear;
Mask:='*.*';
if DirList[Length(DirList)] <> '\' then DirList := DirList + '\';
if FindFirst(DirList+Mask, faAnyFile, SR) = 0 then
begin
repeat
Application.ProcessMessages;
if (SR.Attr and faDirectory) <> faDirectory then
List.Add(DirList + SR.Name)
else if (SR.Name <> '..') and (SR.Name <> '.') then
begin
List.Add(DirList + SR.Name + '\');
GetFileList(DirList + SR.Name + '\');
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
List.SaveToFile(GetWinDir+'\temp\DirList.txt');
но здесь ошибка выскакивает...
Подскажите что не так!!? плиз!