Listar os nomes das pastas de de diretório?

06/09/2004

Preciso listar o conteudo de um pasta...


dentro de [b:b3a7611525]c:\apache\mysql\data[/b:b3a7611525] tenho as seguintes pastas:

bloco-10-10-1-0-24
bloco-10-10-2-0-24
bloco-10-10-3-0-24
bloco-200-195-24-0-24
fornecedores
clientes
usuarios


Preciso colocar o nome dessas pastas em variaveis, mais somentes as que conter blobo antes dos números, tipo:

ba := bloco-10-10-1-0-24
bb := bloco-10-10-2-0-24
bc := bloco-10-10-3-0-24
bd := bloco-200-195-24-0-24

as outras pasta devem ser descartadas...

Testei várias vezes e não tive êxito.

Alguém me ajuda?


Redoctober

Respostas

06/09/2004

Ipc$

var sr:TSearchRec;
begin
  if FindFirst(´c:\apache\mysql\data \*.*´, faAnyFile, sr) = 0 then
    Repeat
      if ((sr.Attr and $10) > 0) and
         (Pos(´BLOCO´, UpperCase(sr.Name)) = 1) then
        ShowMessage(sr.Name); // pasta selecionada
     Until FindNext(sr) <> 0;
  FindClose(sr);
end;



Responder Citar

09/09/2004

Redoctober

[quote:673c993ac0=´IPC$´]
var sr:TSearchRec;
begin
  if FindFirst(´c:\apache\mysql\data \*.*´, faAnyFile, sr) = 0 then
    Repeat
      if ((sr.Attr and $10) > 0) and
         (Pos(´BLOCO´, UpperCase(sr.Name)) = 1) then
        ShowMessage(sr.Name); // pasta selecionada
     Until FindNext(sr) <> 0;
  FindClose(sr);
end;
[/quote:673c993ac0]

Olá IPC$,

Não consegui rodar conforme o esperado!

Preciso que ele imprima o nome de todas as pastas que contenha a palavra bloco no nome

:(


Responder Citar

09/09/2004

Tatuweb

Tente assim:

procedure FindFolder (const Path: String; List: TStrings) ;
var
   Res: TSearchRec;
   EOFound: Boolean;
begin
   EOFound:= False;
   if FindFirst (Path, faDirectory, Res) < 0 then
     Exit
   else
     while not EOFound do
     begin
       if Res.Attr = faDirectory then List.Add(Res.Name) ;
       EOFound:= FindNext(Res) <> 0;
     end;
   FindClose(Res) ;
end;

Para usar:
FindFolder (´c:\apache\mysql\data\bloco*´ , Listbox1.items);



Responder Citar