PDA

Ver la Versión Completa : Como listar los archivos de un determinado directorio al dar click en un boton?


Missael
21-09-2018, 19:30:20
Hola, Buenas tardes

Hoy de nuevo estoy en busca de su ayuda, estoy haciendo una aplicacion en delphi, donde tengo un boton, al apretarlo debe verificar dada una ruta especifica (Ej. C:\proyectos\1) despues del 1 debo verificar si hay carpetas, obtener sus nombres para guardarlos en una variable y verificar si tienen contenido las carpetas, si existe tiene que subir el contenido a un servidor (Por ahora solo quiero verificar, mostrar el resultado en consola) si no existe, solo omitir

Estoy atorado en ese sentido, soy nuevo en el lenguaje y me cuesta un poco estas cosas de inspecciones. Espero puedan ayudarme, Muchas Gracias.

:confused:

Casimiro Notevi
21-09-2018, 20:08:32
http://www.clubdelphi.com/foros/showthread.php?t=80413&highlight=findfirst

Missael
24-09-2018, 20:01:47
Disculpa, para implementarlo en un botón? que al dar click me regrese los nombres de los archivos encontrados en subcarpetas (En este caso solo serian imagenes las que contengan en las carpetas) tengo el path hasta lo que es estatico, despues de cierta ruta, las subcarpetas pueden variar, depende de quien acceda a ese path.

ecfisa
24-09-2018, 20:54:17
Hola Missael.

El foro Trucos no es para plantear dudas sino para presentar código novedoso o que resuelve determinadas problemáticas.

Moví tu mensaje desde el hilo: Listar los archivos de un determinado directorio (http://www.clubdelphi.com/foros/showthread.php?t=80413), como un nuevo tema al foro correspondiente.

Saludos :)

ecfisa
24-09-2018, 21:04:16
Hola nuevamente.

Un ejemplo que implementa el procedimiento de dec en el evento OnClick de un TButton:

procedure TForm1.Button1Click(Sender: TObject);
var
TS: TStrings;
begin
TS := TStringList.Create;
try
ArchivosDirectorio('C:\Windows\', '*.*', TS, True);
ListBox1.Items.Assign(TS);
finally
TS.Free;
end;
end;


Saludos :)

movorack
24-09-2018, 21:19:59
En el primer ítem del listado de abajo "Temas Similares" encuentras la respuesta (https://www.clubdelphi.com/foros/showthread.php?p=525016&nojs=1)

Casimiro Notevi
24-09-2018, 22:21:00
También preguntaste el otro día aquí (http://www.clubdelphi.com/foros/showthread.php?t=93424).

Missael
24-09-2018, 23:43:14
Podría implementar ese código en un botón? si es así, podrían explicarme como?, soy nuevo en delphi, se los agradecería mucho.

también tengo la duda de como usar un procedure con parámetros dentro de otro procedure. como para ejecutar el procedure y ahorrar lineas de código de mas.

:D :rolleyes: :confused:

Casimiro Notevi
24-09-2018, 23:47:44
La Cara Oculta De Delphi (http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip)
Nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

Casimiro Notevi
24-09-2018, 23:50:53
Ya son tres o cuatro mensajes en distintos hilos preguntando por lo mismo, los he unido.
Saludos.

Missael
25-09-2018, 00:02:33
Una disculpa, soy nuevo tambien en esto de preguntar en foros, solo espero puedan responder mi ultima pregunta. muchas gracias

Casimiro Notevi
25-09-2018, 09:11:36
Una disculpa, soy nuevo tambien en esto de preguntar en foros, solo espero puedan responder mi ultima pregunta. muchas gracias
Pues eso se soluciona leyendo nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) :)
En cuanto al código al pulsar un botón, eso es precisamente lo que te ha contestado algún compañero.

Missael
25-09-2018, 18:03:55
Hola nuevamente.

Un ejemplo que implementa el procedimiento de dec en el evento OnClick de un TButton:

procedure TForm1.Button1Click(Sender: TObject);
var
TS: TStrings;
begin
TS := TStringList.Create;
try
ArchivosDirectorio('C:\Windows\', '*.*', TS, True);
ListBox1.Items.Assign(TS);
finally
TS.Free;
end;
end;


Saludos :)

Gracias por la respuesta, lo que me tiene mas en duda es revisar los subdirectorios, como tengo un path especifico, hay dos tipos de archivos, uno contiene mas subcarpetas que el otro, pero ambos tienen el mismo path hasta cierta carpeta, y solo quiero que me mande un mensaje nombrando todos los archivos encontrados en las subcarpetas.

esta el codigo de la seccion trucos pero como lo implemento en un boton?

movorack
25-09-2018, 21:07:21
¿Que tanto tienes elaborado?

Missael
25-09-2018, 23:12:08
procedure TForm2.UploadClick(Sender: TObject);
begin
time := milli(Now);
times := IntToStr(time);
//ShowMessage('19'+times);
path := ''+Choose+'\exportGeneralInstructions'+fileName+'\qcExcel\'+json+'\productReport\';
if (FindFirst(path + '*' , faArchive, sr ) and FindFirst(path + '*' , faDirectory, sr )) = 0 then
begin
repeat
//if (sr.Attr and faArchive) = faArchive then
ShowMessage('File Name: '+ sr.Name);
if DirectoryExists(sr.name) then
else
begin
path := path + sr.Name;
end;

until FindNext(sr) <> 0;

end
else
begin
ShowMessage('Files not found');
end;
FindClose(sr);
res := '{"localid":"15'+times+'-'+path+'\","deviceid":"windowsapp","createddate":15'+times+',"userid":0,"qaqcid":'+json+'}';
end;


Tengo eso, ahorita lo que estoy haciendo (no se si sea lo correcto) es agregar al path el nombre de la carpeta, de ahi seguir inspeccionando una por una, hacer un ciclo, que lo haga hasta que ya no encuentre carpetas por revisar
Choose: es la direccion que escoge el usuario a guardar sus archivos que se descomprimen automaticamente

los otros valores son de un json.