Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   obtener directorios (https://www.clubdelphi.com/foros/showthread.php?t=20863)

quetzal 27-04-2005 22:21:30

obtener directorios
 
hay alguna funcion que te regrese todos los directorios dentro de un directorio, y pues de paso como obtener la lista de archivos en un directorio

Gracias de antemano :cool:

marcoszorrilla 27-04-2005 22:25:48

Mira a ver si te sirve este:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(form1.Handle, 'Open', 'C:\', 0, 0, SW_SHOW);
end;

Un Saludo.

dec 28-04-2005 02:44:24

Una función no, pero una combinación de ellas
 
Hola,

Mira en la ayuda de Delphi por las funciones FindFirst, FindNext y FindClose. También puedes buscar "Finding a file" para más información al respecto.

A continuación algo de código que pueda darte una idea (en la ayuda de las funciones susomentadas encontrarás ejemplos de uso de las mismas).

Código Delphi [-]
     
 function TForm1.ListaDirectorios(directorioPadre: string) : TStringList;
  var
    sr: TSearchRec;
  begin
    Result := TStringList.Create;
    if FindFirst(directorioPadre + '*', faDirectory, sr) = 0 then
    repeat
      if (sr.Attr = faDirectory) then
        Result.Add(directorioPadre + sr.Name);
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
  
  function TForm1.ListaArchivos(directorioPadre: string) : TStringList;
  var
    sr: TSearchRec;
  begin
    Result := TStringList.Create;
    if FindFirst(directorioPadre + '*', faAnyFile, sr) = 0 then
      repeat
        if (sr.Attr and faDirectory = 0) or (sr.Name <> '.')
          and (sr.Name <> '..') then
            Result.Add(directorioPadre + sr.Name);
      until FindNext(sr) <> 0;
    FindClose(sr);
  end;
  
     
     // Llamando a las funciones anteriores
 procedure TForm1.Button1Click(Sender: TObject);
  begin
    ListBox1.Items := ListaDirectorios('C:\');
    ListBox2.Items := ListaArchivos('C:\');
  end;

Neftali [Germán.Estévez] 28-04-2005 09:20:52

También te puede servir (y el código debe ser similar al que ya te han puesto) los trucos 310 y 333 se la sección de trucos del Club Delphi. Ambos sirven para borrar directorios (y todo su contenido); Para ello hacen un recorrido buscando directorios y ficheros dentro de un directorio para luego borrarlos.
El algoritmo es muy similar al tuyo (eliminando la línea de borrar, claro...) así que tal vez te pueda servir de guía.

quetzal 16-05-2005 19:49:41

bueno las funciones funcionan bien, valgame la redundancion, pero si las utilizo en la unidad C, pero si yo cambio de unidad como la D o la E, u otra unidad, la funcion de los directorios no regresa ningun valor, como podria yo solucionar esto, o porque sucede esto?

gracias de antemano.


La franja horaria es GMT +2. Ahora son las 19:47:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi