Foros Club Delphi

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

jam888 16-04-2007 21:56:17

Listar archivos?
 
Querida gente del foro, buenas tardes, me pregunto como hacer para leer los archivos que se encuentran en una determinada carpeta, la cual envio a un procedimiento como parametro, por ejemplo, dentro de la carpeta d:\Documentos tengo 3 archivos doc1.txt, doc2.txt y regilla1.xls, quisiera mostrar estos 3 nombres de archivos en un shomessage uno debajo de otro.
desde ya gracias.
Un Abrazo.

marcoszorrilla 16-04-2007 22:15:34

Y por qué no utilizas un FileListBox de la Paleta Win31.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
FileListBox1.Mask:='*.txt';
FileListBox1.Drive:='e';
end;

Un Saludo.

jam888 17-04-2007 18:03:50

lo se pero..
 
Se que puedo utilizar ese componente, pero no, debo acomodar las lista de archivos de otra manera, para redireccionarlos.
Otra consulta, como creo una carpeta mediante comandos en delphi y como la elimino?
desde ya gracias.

marcoszorrilla 17-04-2007 20:23:48

La próxima vez abre un hilo nuevo puesto que se trata de una pregunta nueva:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not DirectoryExists('E:\Mi_Prueba') then
    if not CreateDir('E:\Mi_Prueba') then
    raise Exception.Create('No Puedo crear el Directorio.');

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if  DirectoryExists('E:\Mi_Prueba') then
RemoveDir('E:\Mi_Prueba')
end;

Un Saludo.

marcoszorrilla 17-04-2007 20:32:07

Para listar los ficheros en ShowMessage utilizando el FileListBox, sino quieres que se vea símplemente le pones su propiedad visible a False y arreglado.

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
cLista:String;
i:Integer;
begin
FileListBox1.Mask:='*.txt';
FileListBox1.Drive:='e';

For i:= 0 to FileListbox1.Items.Count -1 do
begin
cLista:=cLista+FileListbox1.Items.strings[i]+Chr(10)+Chr(13);
end;

ShowMessage(cLista);
end;

Un Saludo.

ixMike 17-04-2007 20:56:03

Lo siento mucho, marcoszorrilla, pero lo del FileListBox oculto es una chapuza (lo digo sin ánimo de ofender). Lo sé porque una vez lo hice así.
Lo que se queda más profesional (de todo lo que conozco), más limpio, lo que menos recursos consume y lo más rápido (a la hora de usar, no de programar), es usar las funciones FindFirst, FindNext y FindClose, que están bien detalladas en la ayuda de Delphi. Además dan la posibilidad de hacer filtros, especificar atributos de archivo y, si te lo curras, hasta buscar en subdirectorios (aunque eso último ya es más elaborado, pero si teneis paciencia, busco el código que hice una vez para tal propósito y lo coloco aquí). Y para guardar una lista con los archivos encontrados, pues usar un TStrings o TStringList.

Saludos a todos

marcoszorrilla 17-04-2007 21:02:16

No veo porque me tendría que dar por ofendido. Conozco esas funciones que citas, pero para el caso que nos ocupa y como colijo que quien pregunta no es experto en la materia, me parece que es la manera más fácil de resolver el caso.

Un Saludo.

jam888 17-04-2007 21:06:01

Sigo en problemas
 
ok, la proxima abrire otro hilo, volviendo al problema, el tema con el filelistbox es que no me deja enviar una cadena de cacteres(string) solo le puedo enviar un letra(char) (drive)y lo que yo necesito es que un cliente vea los archivos de una carpeta determinada y no vea nada mas de lo que hay en el disco.
Probe con open dialog, le puedo enviar una cadena de destino, hasta ahi ok, pero el cliente puede navegar por el disco y eso no le esta permitido hacer.
gracias por las respuestas.

Un Abrazo.

Lepe 17-04-2007 21:08:54

Yo sigo usando las rutinas de las NKLIBS una estupenda biblioteca de funciones.

Código Delphi [-]
// Devuelve una lista con todos los ficheros de un directorio que se ajustan
// a la máscara cMask, con unos atributos dados, si lRecursive vale True,
// busca también en los subdirectorios, en los subdirectorios de los
// subdirectorios, etc.
// Devuelve False si el directorio no existe.
function FindFilesInDir(const cDir:String; cMask: TStrings; iAttr: Integer;
             lRecur: Boolean; S: TStrings): Boolean;

function FindFilesInDirS(const cDir:String; cMask: String; iAttr: Integer;
             lRecur: Boolean; S: TStrings): Boolean;

// Devuelve una lista con todos los subdirectorios contenidos en un
// directorio.
// Devuelve False si el directorio no existe.
function FindSubsInDir(const cDir: String; S: TStrings;const FullPathInSubdirs:Boolean = false): Boolean;

Ejemplo de llamada:
Código Delphi [-]
      findfilesindirS(getwindir + '\msagent\chars', '*.acs', faanyfile,
        false, TStringList(combopersonaje.items));

Son gratuitas y usando google no tardarás en bajarlas.

Saludos

seoane 17-04-2007 21:41:53

Este tema se trato ya muchas veces en los foros. Por ejemplo en este post no solo te los listan (en un TstringList) que además te los dan ordenados por fecha.

http://www.clubdelphi.com/foros/show...41&postcount=2

O tienes este otro truco
http://www.clubdelphi.com/trucos/ind...ll=0&scrollb=0

Y seguro que con una simple búsqueda encuentras muchos mas ejemplos

jam888 17-04-2007 22:58:43

Gracias a todos
 
Muchas gracias a todos por sus aportes que fueron de mucha importancia, me quedo algo p[or resolver, pero lo hare en otro hilo.

FideRosado 22-05-2020 17:42:53

como y donde obtener esta libreria he buscado en google y nada

ecfisa 23-05-2020 01:31:13

Hola.

Desconozco su origen y uso, pero, a partir de estos hilos:infiero que las rutinas de NKLIBS estan contenidas en la biblioteca RXLibs.

Saludos :)


La franja horaria es GMT +2. Ahora son las 07:52:12.

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