danielrgoes Postado Março 24, 2009 Denunciar Share Postado Março 24, 2009 Bom dia pessoaleu tenho um codigo para pegar o nome de arquivos de uma pastavar searchResult : TSearchRec;beginif FindFirst('*.*', faAnyFile, searchResult) = 0 thenbeginrepeatShowMessage('Nome do arquivo = '+searchResult.Name);until FindNext(searchResult) <> 0;FindClose(searchResult);end;end;ele funciona muito bemmais eu gostaria de pegar o nome do que tem dentro de uma subpasta tambémou seja c:\teste pega os arquivos de dentro e entro de teste tem duas pasta teste1 e teste 2 gostaria de pegar o que tem nelas tambémmuito obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 24, 2009 Denunciar Share Postado Março 24, 2009 mais eu gostaria de pegar o nome do que tem dentro de uma subpasta tambémhttp://www.delphix.org/?q=node/125//para Listar Sub-Pastas de uma Pasta em uma TStrings procedure EnumFolders(Root: String; Folders: TStrings); procedure Enum(dir: String); var SR: TSearchRec; ret: Integer; begin if dir[length(dir)] <> '\' then dir := dir + '\'; ret := FindFirst(dir + '*.*', faDirectory, SR); if ret = 0 then try repeat if ((SR.Attr and faDirectory) <> 0) and ( SR.Name <> '.') and ( SR.Name <> '..') then begin folders.add( dir+SR.Name ); Enum( dir + SR.Name ); end; ret := FindNext( SR ); until ret <> 0; finally SysUtils.FindClose(SR) end; end; begin if root <> EmptyStr then Enum(root); end; //usa EnumFolders para listar as Sub-Pastas e procuras por arquivos procedure EnumFiles(Pasta, Arquivo: String; Files: TStrings); var SR: TSearchRec; SubDirs : TStringList; ret, X : integer; sPasta : String; begin if Pasta[Length(Pasta)] <> '\' then Pasta := Pasta + '\'; try SubDirs := TStringList.Create; SubDirs.Add(Pasta); EnumFolders(Pasta, SubDirs); if SubDirs.Count > 0 then for X := 0 to SubDirs.Count -1 do begin sPasta:= SubDirs[X]; if sPasta[Length(sPasta)] <> '\' then sPasta := sPasta + '\'; ret := FindFirst(sPasta + Arquivo, faAnyFile, SR); if ret = 0 then try repeat if not (SR.Attr and faDirectory > 0) then Files.Add(SR.Name); ret := FindNext(SR); until ret <> 0; finally SysUtils.FindClose(SR) end; end; finally SubDirs.Free; end; end; //Como usar: EnumFiles('C:\Windows\', '*.txt', Memo1.Lines);abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
danielrgoes
Bom dia pessoal
eu tenho um codigo para pegar o nome de arquivos de uma pasta
var searchResult : TSearchRec;
begin
if FindFirst('*.*', faAnyFile, searchResult) = 0 then
begin
repeat
ShowMessage('Nome do arquivo = '+searchResult.Name);
until FindNext(searchResult) <> 0;
FindClose(searchResult);
end;
end;
ele funciona muito bem
mais eu gostaria de pegar o nome do que tem dentro de uma subpasta também
ou seja c:\teste pega os arquivos de dentro e entro de teste tem duas pasta teste1 e teste 2 gostaria de pegar o que tem nelas também
muito obrigado
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.