GARANTIR DESCONTO

Fórum Listar pastas dentro de um diretório #387099

24/09/2010

0

Olá,

já procurei em vários lugares e não consigo encontrar, pode até ter como fazer em algum canto!

Gostaria de listar em um listbox as pastas de um diretório, consegui fazer para arquivos, mas para pasta não conseugi, alguém pode dar um ajuda?

Obrigado!
Luiz Junior

Luiz Junior

Responder

Posts

24/09/2010

Wilson Junior

Teste isto
function TemAtributo(Attr, Val: Integer): Boolean;
begin
  Result := Attr and Val = Val;
end;

procedure AtribuiDiretorios(Diretorio : String);
var
  F : TSearchRec;
  Retorno : Integer;
begin
  //Inicia Busca
  Retorno := FindFirst( Diretorio + '\*.*', faAnyFile, F );

  ListBox1.Clear;
  try
    while Retorno = 0 do
    begin
      if  (F.Name <> '.') and (F.Name <> '..') then
        begin
          if  TemAtributo( F.Attr, faDirectory ) then
              ListBox1.Items.Add( Diretorio + '\' + F.Name )
          ;
        end;
           Retorno := FindNext( F )
       ;
    end;
  finally
    FindClose( F );
  end;
end;


Espero ter colaborado.
Responder

Gostei + 0

24/09/2010

Luiz Junior

Ajudo bastante, obrigado!

Agora não sei se vc pode me ajudar também, ele está pegando o caminho todo, eu preciso somente do nome da pasta, sei que tem uma forma para eu pegar os caracteres de um string do final para o inicio até um caracter.

exemplo:

c:\Pasta1\Teste

o comando tem que pegar os carateres etseT e quando ele identificar a '\' ele para, o resultado seria só Teste.

Sabe como fazer isso?
Responder

Gostei + 0

24/09/2010

Marco Salles

Ajudo bastante, obrigado!

Agora não sei se vc pode me ajudar também, ele está pegando o caminho todo, eu preciso somente do nome da pasta, sei que tem uma forma para eu pegar os caracteres de um string do final para o inicio até um caracter.

exemplo:

c:\Pasta1\Teste

o comando tem que pegar os carateres etseT e quando ele identificar a '\' ele para, o resultado seria só Teste.

Sabe como fazer isso?
como assim ???     o comando tem que pegar os carateres etseT e quando ele identificar a '\' ele para, o resultado seria só Teste.   O codigo que o amigo postou parace funcionar do jeito que vc precisa .
 
Responder

Gostei + 0

27/09/2010

Luiz Junior

Bom dia,

ele funciona sim, mas está pegando o caminho competo exemplo:

c:\arquivos de programas\meu programa\teste

o que eu quero é pegar somente o nome das pastas que estão no diretorio meu programa, no exemplo seria o nome da pasta 'teste'.

Sei que tem uma função no delphi que consigo pegar os caracteres de trás para frente e indico para ele pegar até encontrar o '\' e seria somente o nome da pasta 'teste'.

Não sei se é a melhor forma de fazer mas funciona, já fiz uma vez mas não lembro como fiz, vou tentar encontrar em meus backups e postar se encontrar, mas se tiverem uma solução agradeço!

Obrigado!
Responder

Gostei + 0

28/09/2010

Marco Salles

Bom dia,

ele funciona sim, mas está pegando o caminho competo exemplo:

c:\arquivos de programas\meu programa\teste

o que eu quero é pegar somente o nome das pastas que estão no diretorio meu programa, no exemplo seria o nome da pasta 'teste'.

Sei que tem uma função no delphi que consigo pegar os caracteres de trás para frente e indico para ele pegar até encontrar o '\' e seria somente o nome da pasta 'teste'.

Não sei se é a melhor forma de fazer mas funciona, já fiz uma vez mas não lembro como fiz, vou tentar encontrar em meus backups e postar se encontrar, mas se tiverem uma solução agradeço!

Obrigado!
então , amigo.. Não precisa complicar e usar nenhuma codificação extra   Aonde esta Escrito    ListBox1.Items.Add( Diretorio + '\' + F.Name )   Basta Trocar por    ListBox1.Items.Add(F.Name )
Responder

Gostei + 0

29/09/2010

Luiz Junior

Você está certa, não tinha me ligado em fazer isso! Deu certo!   Não tive tempo de encontrar o código q eu tinha, assim que conseguir vou postar aqui também!   Valeu!!!
Responder

Gostei + 0

29/09/2010

Luiz Junior

Você está certo e não certa, não tinha me ligado em fazer isso! Deu certo!   Não tive tempo de encontrar o código q eu tinha, assim que conseguir vou postar aqui também!   Valeu!!!
Responder

Gostei + 0

15/02/2016

Bernelio

pessoal, utilizem este comando abaixo, funciona e fica bem melhor na apresentação!

shellexecute(0, nil, pchar( 'c:\sistema\boleto\' ), nil, nil, SW_SHOWNORMAL);

abs
Bernélio
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar