Fórum Como importar arquivos pro delphi, sem precisar abrir janela de busca? #607981

06/02/2020

0

Olá boa tarde a todos, preciso de uma função que eu traga o nome dos arquivos de uma pasta?
Eu uso a função abaixo de um diretório cadastrado no banco de dados.
---
OpenDialog.InitialDir := qrDiretoriocatalogo_caminho.Text;
---
Só que ele abre a janela para poder selecionar os arquivos.
O que eu queria?
Que quando eu clicar no botão para executar o opendialog, ele já traga os arquivos para o listview.
Lembrando que a função de trazer para o listview já tenho.

Obrigado a todos.
Júnior Pinheiro

Júnior Pinheiro

Responder

Posts

06/02/2020

Core2

uses
SysUtils; //SetCurrentDir e AnsiContainsText

procedure TForm1.Button1Click(Sender: TObject);
Var
Path, Path2 : String;
SR : TSearchRec;
DirList : TStrings;
Lista : TStringList;
i: Integer;
begin

if directoryexists(qrDiretoriocatalogo_caminho.Text) then //função que revifica se existe o dir
begin
Path:= qrDiretoriocatalogo_caminho.Text; //pega o path do seu qrDiretoriocatalogo_caminho.Text
SetCurrentDir(Path);// set o Path como o atual
OpenDialog1.InitialDir:= GetCurrentDir; // pega o path atual e set no OpenDialog como inicial

DirList:= TStringList.Create; // cria uma lista
try
if FindFirst(Path + '*.*', faArchive, SR) = 0 then //procura todos os arquivos no path
begin
repeat
DirList.Add(ExtractFileName(SR.Name)); //add itens a lista de DIR
until FindNext(SR) <> 0;
FindClose(SR);
end;

//faça oque quiser

for i := 0 to DirList.Count - 1 do begin

if (DirList.Strings[i] = '') then //chega se esta vazia
begin
Lista.Add(QuotedStr(DirList.Strings[i]));// add o item entre aspas na lista se esta vazia
end
else
begin
Lista.Add(' '+QuotedStr(DirList.Strings[i])); // coloca os tens entre aspas e coninua a lista com espaço
end;

Lista.Text:= StringReplace(Lista.Text, sLineBreak, '',
[rfReplaceAll, rfIgnoreCase]); // retira as quebras de linha e seta uma lista reta igual a do opendialog se der problema nisso e só retirar

OpenDialog1.FileName:= Lista.Text; // set a lista de arquivos cria no Opendialog com nomes fixos quando abrir já vai esta a lista nele

end;// final do loop

finally
DirList.Free; // libera a lista dir
Lista.Free;// libera lista
end;

end;// final da função que revifica se existe o dir

if OpenDialog1.Execute then // chama o opendialog
begin

end;

end;
Responder

Gostei + 0

06/02/2020

Core2

você pode simplesmente deleta essa parte

if OpenDialog1.Execute then // chama o opendialog
begin

end;


pode usar as lista no luga do opendialog se quiser
Responder

Gostei + 0

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

Aceitar