Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Question Listar el contenido de un directorio

Hola a todos: Necesito saber como puedo selecionar un directorio (con un ShellTreeView digamos) y en un ListBox, Memo, etc... ver el contenido dentro de dicho directorio y que me incluya subcarpetas. En el formulario tengo un ShellTreeView, un boton y un ListBox. Yo quiero que al seleccionar una carpeta con el Shell... y dar clic en el botón, el ListBox me muestre todos los archivos que contiene la carpeta seleccionada. Uso delphi7. Win XP SP2. Salu2 y suerte. Espero me ayuden Chao
Responder Con Cita
  #2  
Antiguo 17-06-2008
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
esto es lo que yo hago, en el evento OnChange del ShellTreeView, y no depende del boton
Código Delphi [-]
procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin // lista1 = TFileListBox
Lista1.Directory:= ShellTreeView1.Path;
end;

Última edición por juanlaplata fecha: 17-06-2008 a las 21:15:46.
Responder Con Cita
  #3  
Antiguo 17-06-2008
Avatar de GaaK
GaaK GaaK is offline
Miembro
 
Registrado: oct 2005
Ubicación: Trujillo - Peru
Posts: 31
Poder: 0
GaaK Va por buen camino
El siguiente es un procedure asignado a un botón que borra los Documentos Recientes:
Código Delphi [-]
procedure TfrmMain.btnOkClick(Sender: TObject);
var
  sPath: String;
  SR: TSearchRec;
begin
    sPath := 'C:\Documents and Settings\Propietario\Recent';
    if sPath[Length(sPath)]<>'\' then sPath := sPath+'\';
    if FindFirst(sPath+'*.*', faAnyFile, SR) = 0 then begin
      repeat
        if (SR.Attr <> faDirectory) then begin
          DeleteFile(sPath+SR.Name);
        end;
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
end;
... en lugar del DeleteFile usted podría usar Memo1.Lines.Add o algo parecido sabiendo que el nombre es SR.Name.

- Gaak -
__________________
L'Gaak dice
Responder Con Cita
  #4  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Existe el componente filelistbox que hace exactamente eso.
Responder Con Cita
  #5  
Antiguo 17-06-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Listar el contenido de un directorio

Gracias a todos: Miren, lo que busco es como Gaak dice. Algo así, pero el problema con lo que expone Gaak es que no me muestra el contenido de las subcarpetas que estan dentro de la carpeta escogida por mi. Solo deja ver los ficheros que estan en ese directorio y pasa por alto las carpetas incuidas dentro. Como puedo modificar ese mismo procedure para obtener el resultado que busco?
Gracias de antemano.
Responder Con Cita
  #6  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
el componente filelistbox tiene la propiedad, dentro de filetype, lfdirectory. Ponla a true y te mostrará tb los directorios.
Responder Con Cita
  #7  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
si quieres usar el codigo de gaak, fijate para q sirve la linea
Código Delphi [-]
    if (SR.Attr <> faDirectory) then

saludos
Responder Con Cita
  #8  
Antiguo 17-06-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Red face Listar el contenido de un directorio

Coso:
A lo que te refieres
Código Delphi [-]
(SR.Attr <> faDirectory)
es solo para que el acepte carpetas si es = o ficheros si es <>.
Si tengo que usar el FileListBox es =, cuando doy true la la propiedad ftDirectory solo me muestra los directorios que hay en el. Eso esta bien pero no me muestra lo que hay en esa subcarpeta.
Espero que me puedan ayudar.
Muchas gracias
Responder Con Cita
  #9  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Ok te entendi mal. Debes usar recursividad :

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
        st : TStringList;
begin
        st := TStringList.Create;
        AddPath('o:\temp',st);
        ListBox1.Items.Text := st.Text;
        st.Free;
end;
procedure TForm1.AddPath(s : string; st : TStringList);
var
  SR: TSearchRec;
begin

    if s[Length(s)]<>'\' then s := s + '\';
    if FindFirst(s+'*.*', faAnyFile, SR) <> 0 then exit; 

    repeat
       if (SR.Attr <> faDirectory) then st.Add(s+SR.Name);
       if (SR.Attr = faDirectory) and (SR.Name <> '..') and (SR.Name <> '.') then AddPath(s+SR.Name,st);
    until FindNext(SR)<>0;

    FindClose(SR);
end;

saludos
Responder Con Cita
  #10  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
vaya...ahora busque en el foro . Espero que de tanto reinventar la rueda no nos salga cuadrada
Responder Con Cita
  #11  
Antiguo 19-06-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Smile Listar el contenido de un directorio

Coso 100 000 de gracias por todo. Y a todos los que me respondienron = de gracias. Ya me funcionó. Continuen así.
Suerte y salu2
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
listar carpetas de un directorio? gabrielflowers PHP 13 10-04-2008 01:25:22
Borrar un directorio con contenido Mariana Varios 9 27-02-2008 10:59:53
Listar archivos en un directorio vivamotos C++ Builder 1 04-01-2008 12:56:08
Listar archivos de directorio a travez de FTP ilichhernandez Internet 6 22-09-2006 02:03:14
Vaciar el contenido de un directorio (Borrar *.*) Gelmin Varios 1 22-07-2004 21:21:50


La franja horaria es GMT +2. Ahora son las 23:55:44.


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
Copyright 1996-2007 Club Delphi