Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2005
Essato Essato is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Poder: 0
Essato Va por buen camino
Question Obtener el Contenido de una unidad (cd o hd), es posible?

Hola, de antemano gracias, espero que me puedan ayudar, el problema es que quiero agregar el contenido de un CD o un disco duro a una db, es decir, una lista de las carpetas/archivos contenidos en la unidad seleccionada, que desplegara algo como:


carpeta1\archivo1.ext
carpeta2\
carpeta2\carpeta2s1\
carpeta2\carpeta2s2\
carpeta2\carpeta2s2\archivo2.ext
archivo3.ext
Que sea recursivo con todos las subcarpetas. Como es posible hacer esto, pero como?, soy nuevo en delphi, se programar en otros lenguajes y la verdad me es algo frustrante que en otros lenguajes es algo tan sencillo (como en php). Alguien que por favor me ayude a encontrar la forma de resolver este problema??

Gracias.
Responder Con Cita
  #2  
Antiguo 22-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Código Delphi [-]
procedure DirList(Path: String; List: TStrings);
var
  SearchRec: TSearchRec;

begin
  Path := IncludeTrailingPathDelimiter(Path);

  if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then
  begin
    List.BeginUpdate;

    repeat
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
      begin
        if (SearchRec.Attr and faDirectory = faDirectory) then
        begin
          List.Add(Path + SearchRec.Name + '\');
          DirList(Path + SearchRec.Name, List);
        end
        else
          List.Add(Path + SearchRec.Name);
      end;
    until FindNext(SearchRec) <> 0;

    List.EndUpdate;
  end;

  FindClose(SearchRec);
end;


Código Delphi [-]
// Uso
DirList('C:\Mis documentos', ListBox1.Items);

No es la forma óptima y si lo ejecutas contra 'C:\' prepárate a esperar un buen rato.

// Saludos
Responder Con Cita
  #3  
Antiguo 22-04-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción es que el componente ShellTreeView te haga el trabajo. En la carpeta \Demos\ShellControls\ está éste componente que se instala en la paleta de Samples en Delphi.

Puedes colocar un componente de éstos en un form.
(1) Configuras la propiedad Root con C:\
(2) Ejecutas: ShellTreeView1.FullExpand; para expandir todos los niveles.
(3) Y cuando acabe guardarlo en un fichero con:
ShellTreeView1.SaveToFile('c:\temp\aa.txt');

Una vez en el fichero puedes hacer lo que quieras con él.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 22-04-2005
Essato Essato is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Poder: 0
Essato Va por buen camino
Hola, gracias por sus respuestas, probare ambos métodos y ya les dire.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 13:39:04.


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