Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DouglasP

Listar diretorio

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.