![]() |
Abrir archivos con OpenDialog
Hola amigos
Quisiera saber cómo se pueden seleccionar simultáneamente todos los archivos de un tipo específico (por ejemplo .jpg) contenidos en una carpeta determinada, al seleccionar dicha carpeta en un OpenDialog. Por defecto el OpenDialog permite abrir uno o varios archivos al seleccionarlos individualmente, pero yo necesito que se abran todos los archivos con una extensión determinada, al hacer click en la carpeta contenedora. Saludos y muchas gracias |
Hola,
El componente "TOpenDialog" sirve para escojer uno o más archivos, pero, si lo que quieres es trabajar con los archivos de un determinado directorio, tal vez puedas usar la función "SelectDirectory". De este modo el usuario podrá escojer un determinado directorio, y, sabiendo su ruta, tú podrás buscar los archivos que te interesen dentro del mismo y hacer lo que sea menester con ellos. P.D. Acaso podrías usar el "TOpenDialog" si extraes la ruta del directorio del archivo o archivos elejidos, sin embargo, me parece más apropiado usar "SelectDirectory", puesto que, en definitiva, no se trata de elegir entre uno o más archivos, sino más bien todos los archivos de un determinado directorio. |
Muchas gracias dec .
Voy a probar y te cuento. Salu2 |
No es exactamente lo que necesito.
Mi intención es simplificarle el trabajo al usuario del programa. Yo utilizo el siguiente código para cargar una tabla que después leo con un componente específico (DicomMultiViewer1)
La idea es que al seleccionar ya sea el directorio que contiene los archivos o bien cualquiera de los archivos existentes en dicho directorio, se seleccionen todos automáticamente. ¿Existe algo que pueda agregar a mi código que me permita hacerlo? Salu2 y gracias nuevamente |
Creo que lo que necesitas va por el camino que te ha mostrado dec.
Si seleccionas solo el directorio con SelectDirectory o si seleccionas un archivo y a este le extraes el path es totalmente válido. El siguiente paso es buscar todos loas archivos de ese directorio que se ajusten a tu requerimiento. En About.com encontré un articulo de como leer los archivos de un directorio. Podrías echarle un vistazo. |
Muchas gracias [movorack] :
¿Cómo puedo extraer el path del directorio desde el OpenDialog y pasarselo a mi código? Salu2 |
Hola radenf.
De este modo carga todos los archivos de la carpeta cuya extensión sea la misma que el archivo abierto mediante TOpenDialog:
Saludos. :) |
Muchas gracias ecfisa :
El código que me has propuesto me genera los siguientes errores: Al compilar señala: [DCC Warning] VisorDicom.pas(932): W1002 Symbol 'faArchive' is specific to a platform [DCC Warning] VisorDicom.pas(930): H2164 Variable 'toFind' is declared but never used in 'GetFiles' Al ejecutarse envía el siguiente mensaje de error: Cannot open file "C:\Users\IV\Documents\Proyectos Delphi 2007\Proyecto Dicom Viewer\1.2.840.157.dcm". El sistema no puede encontrar el archivo especificado. Sin embargo el archivo al que se refiere si lo carga, pero no el resto de los archivos que poseen la misma extensión (.dcm) que se encuentran en el directorio seleccionado. La variable 'toFind' la eliminé y el resultado fue el mismo. Saludos |
Hola radenf.
En realidad no son errores, son advertencias.
En cuanto al mensaje de error es extraño... No se produjo en ninguna de las pruebas que hice, lógicamente como no poseo el componente CnsDMTable1, probé con otros tipos de archivos. Hace la siguiente prueba para ver si los nombres de archivos de la carpeta "C:\Users\IV\Documents\Proyectos Delphi 2007\Proyecto Dicom Viewer" son cargados correctamente:
Saludos.:) |
Hola radenf.
Hoy no estoy con el mejor de los días... :o Claro que no iba a encontrar los archivos, no agregué la ruta al nombre !
Saludos. :) |
Muchas gracias ecfisa .
Funciona a la perfección. Era justo lo que necesitaba. ¿Es posible lograr lo mismo seleccionando la carpeta que contiene los archivos? Salu2 |
Cita:
Saludos.:) |
Muchas gracias de nuevo ecfisa.
Salu2 |
La franja horaria es GMT +2. Ahora son las 02:32:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi