|
|
Регистрация | << Правила форума >> | 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'); Подскажите что не так!!? плиз! |
#2
|
||||
|
||||
а не проще:
dir >> file.txt Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
Цитата:
|
#4
|
|||
|
|||
Мне нужно чтобы не было невидимых listbox- ов
|
#5
|
||||
|
||||
Код:
Procedure SaveFileList(NamSave,DirScan:string); Var Fs: TSearchRec; Tf: TextFile; begin AssignFile(Tf,NamSave); Rewrite(Tf); if FindFirst(DirScan+'\*.*',faAnyFile-faDirectory-faVolumeID, Fs) = 0 Then Repeat Writeln(Tf,Fs.Name); Until FindNext(Fs) <> 0; FindClose(fs); CloseFile(Tf); end; procedure TForm1.Button1Click(Sender: TObject); begin SaveFileList('C:\1.txt','C:\Temp'); end; |
#6
|
|||
|
|||
Спасибо !
|
#7
|
||||
|
||||
Вот ещё вариант с подпапками:
Код:
Var Sl: TStringList; Procedure FindFile(Dir: String); Var SR: TSearchRec; FR: Integer; begin FR:= FindFirst(Dir+'*.*', faAnyFile, SR); While FR = 0 Do Begin if ((SR.Attr and faDirectory) = faDirectory) and ((SR.Name = '.') or (SR.Name = '..')) Then begin FR:= FindNext(SR); Continue; end; if ((SR.Attr and faDirectory) = faDirectory) Then begin FindFile(Dir+SR.Name+'\'); FR:= FindNext(SR); Continue; end; Sl.Add(Dir+SR.Name); FR:= FindNext(SR); end; FindClose(SR); end; Procedure TForm1.Button1Click(Sender: TObject); begin Sl:= TStringList.Create; FindFile('C:\Temp\'); Sl.SaveToFile('C:\23.txt'); Sl.Free; end; |
#8
|
|||
|
|||
Отлично! спасибо!
|