DouglasP 1 Denunciar post Postado Março 7, 2009 Boa tarde, como faço para listar os arquivos de um diretorio e os dos subdiretorios? grato. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Março 9, 2009 Existem alguns componentes prontos para isso na aba Win 3.1 (Delphi 7). São eles: DriveCombobox, DirectoryListBox e FileListBox. Veja o código abaixo como exemplo: Unit1.dfm object Form1: TForm1 Left = 645 Top = 161 Width = 215 Height = 307 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object DirectoryListBox1: TDirectoryListBox Left = 32 Top = 48 Width = 145 Height = 97 FileList = FileListBox1 ItemHeight = 16 TabOrder = 0 end object DriveComboBox1: TDriveComboBox Left = 32 Top = 16 Width = 145 Height = 19 DirList = DirectoryListBox1 TabOrder = 1 OnChange = DriveComboBox1Change end object FileListBox1: TFileListBox Left = 32 Top = 160 Width = 145 Height = 97 ItemHeight = 13 TabOrder = 2 end end Unit1.pas unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, FileCtrl, StdCtrls; type TForm1 = class(TForm) DirectoryListBox1: TDirectoryListBox; DriveComboBox1: TDriveComboBox; FileListBox1: TFileListBox; procedure DriveComboBox1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DriveComboBox1Change(Sender: TObject); begin DirectoryListBox1.Drive := DriveComboBox1.Drive; end; procedure TForm1.FormCreate(Sender: TObject); begin DirectoryListBox1.Drive := 'C'; end; end. []'s Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Março 9, 2009 preciso exbir +- assim: CurrentDir\Config\config.ini CurrentDir\soft.exe CurrentDIr\player\template\init.wtf e depois salvar em um txt. vlw. Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Março 9, 2009 Boa tarde, tenho o seguinte codigo que lista os arquivos do diretorio e subdiretorio, porem ele fica assim: Exemplo: C:\Documents and Settings\DouglasP\Desktop\Nova pasta\Update.txt e gostaria que ficasse apenas: Nova pasta\Update.txt Código: Botão: CODE Screen.Cursor := crHourGlass; try if Edit1.Text = '' then ProcuraArquivos(GetCurrentDir() + '\*.*') else ProcuraArquivos(Edit1.Text); finally Screen.Cursor := crDefault; end; Função: CODE procedure TForm1.ProcuraArquivos(NomeArq: String); var Diretorio,Nome : String; SearchRec : TSearchRec; ListaDirs : TStringList; Done : Integer; i : Integer; begin // guarda nome do diretorio Diretorio := ExtractFilePath(NomeArq); // guarda nome do arquivo Nome := ExtractFileName(NomeArq); Done := FindFirst(NomeArq,0,SearchRec); while Done = 0 do begin // encontrou - adiciona na listbox Listbox1.Items.Add(Diretorio+SearchRec.Name); // procura proximo arquivo Done := FindNext(SearchRec); end; FindClose(SearchRec); ListaDirs := TStringList.Create; try // procura subdiretorios Done := FindFirst(Diretorio+'*.*',faDirectory,SearchRec); while Done = 0 do begin // testa para ver se e diretorio e se e valido if ((SearchRec.Attr and faDirectory) <> 0) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then ListaDirs.Add(Diretorio+SearchRec.Name); Done := FindNext(SearchRec); end; FindClose(SearchRec); // pesquisa em todos diretorios encontrados for i := 0 to ListaDirs.Count-1 do ProcuraArquivos(ListaDirs+'\'+Nome); Application.ProcessMessages; finally ListaDirs.Free; end; end; como faço oq eu quero? grato. Compartilhar este post Link para o post Compartilhar em outros sites