![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть вот такой код для сохранения списка файлов и папок в определённой директории в текстовый файл
Код:
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');Подскажите что не так!!? плиз! |