Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2010, 17:27
Azazelps Azazelps вне форума
Прохожий
 
Регистрация: 06.03.2010
Сообщения: 6
Репутация: 10
По умолчанию Сохранить список файлов и папок в определённой директории в текстовый файл

Есть вот такой код для сохранения списка файлов и папок в определённой директории в текстовый файл


Код:
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');
но здесь ошибка выскакивает...


Подскажите что не так!!? плиз!
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:41.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025