Listar pastas dentro de um diretório
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!
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
Curtidas 0
Respostas
Wilson Junior
24/09/2010
Teste isto
Espero ter colaborado.
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.
GOSTEI 0
Luiz Junior
24/09/2010
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?
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?
GOSTEI 0
Marco Salles
24/09/2010
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 .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?
GOSTEI 0
Luiz Junior
24/09/2010
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!
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!
GOSTEI 0
Marco Salles
24/09/2010
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 )
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!
GOSTEI 0
Luiz Junior
24/09/2010
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!!!
GOSTEI 0
Luiz Junior
24/09/2010
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!!!
GOSTEI 0
Bernelio
24/09/2010
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
shellexecute(0, nil, pchar( 'c:\sistema\boleto\' ), nil, nil, SW_SHOWNORMAL);
abs
Bernélio
GOSTEI 0