Ir para conteúdo

POWERED BY:

Arquivado

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

DouglasP

[Resolvido] Ler pasta e subpasta

Recommended Posts

Boa noite tem esse codigo que lista os arquivos das pastas e subpastas:

 

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 faço para ele listar tbm o local de onde se localiza cada arquivo?

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.