• Jueves 30 de Mayo de 2024, 12:52

Autor Tema:  Ocultar Ficheros De Una Extension  (Leído 1590 veces)

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Ocultar Ficheros De Una Extension
« en: Viernes 15 de Diciembre de 2006, 05:10 »
0
Saludos compañeros, en mi aplicacion estoy tratando con ficheros xml, y con tipos de formato distinto, que se distingues en la cabecera del fichero xml (unos contienen datos numericos y otros ficheros cadenas, mas o menos, y se distinguen por la cabecera). Pues bien, lo que queria saber es si mi aplicacion al abrir el fichero con un objeto JFileChooser, tiene alguna manera de distinguir dichos ficheros y mostrar solo al usuario los ficheros que contienen cadenas, y los que contienen numeros que los mantenga en el disco duro, pero que no los muestre cuando el usuario pulse la opcion Abrir.

Espero que me haya explicado.
Gracias.

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Ocultar Ficheros De Una Extension
« Respuesta #1 en: Viernes 15 de Diciembre de 2006, 09:22 »
0
Hola...

Precisamente, hice uno de esos hace poco.
Tienes que añadir al JFileChooser los FileFilter correspondientes.
En cada FileFilter, hay un accept. Si ese accept devuelve true para el nombre de tu fichero, éste se mostrará en el filtro.
Este mío admitía ficheros con extensión xls, txt, xml y csv.
Si quieres que no admita los que empiecen por a, por ejemplo, sólo genera el accept correspondiente.
Al final del todo, incluí la típica opción de 'todos los archivos' que puedes conseguir por defecto, como verás.

Código: Text
  1.           JFileChooser loader= new JFileChooser();
  2.           loader.addChoosableFileFilter(new FileFilter(){
  3.             public boolean accept(File f){
  4.               return f.getName().toLowerCase().endsWith(".xml");
  5.             }
  6.             public String getDescription(){
  7.               return "Documento XML (*.xml)";
  8.             }
  9.           }
  10.           );
  11.           loader.addChoosableFileFilter(new FileFilter(){
  12.             public boolean accept(File f){
  13.               return f.getName().toLowerCase().endsWith(".xls");
  14.             }
  15.             public String getDescription(){
  16.               return "Documento Microsoft Excel (*.xls)";
  17.             }
  18.           }
  19.           );
  20.           loader.addChoosableFileFilter(new FileFilter(){
  21.             public boolean accept(File f){
  22.               return f.getName().toLowerCase().endsWith(".txt") || f.getName().toLowerCase().endsWith(".csv");
  23.             }
  24.             public String getDescription(){
  25.               return "Documento de texto separado por comas (*.csv, *.txt)";
  26.             }
  27.           }
  28.           );
  29.           loader.addChoosableFileFilter(loader.getAcceptAllFileFilter());    
  30.  

Espero que te sirva.



Un saludo.



Silverfox

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Re: Ocultar Ficheros De Una Extension
« Respuesta #2 en: Viernes 15 de Diciembre de 2006, 14:28 »
0
Sí, eso si lo tenia, pero yo tengo solo ficheros xml, y tengo dos tipos de esos ficheros xml, unos contienen numeros, y otros cadenas, y a la hora de filtrarlos quiero que solo me muestre los que tiene cadenas (son todos ficheros xml, pero se diferencian en la cabecera <... NOMBRE="un fichero">). Como lo podria hacer ???
Gracias.

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Ocultar Ficheros De Una Extension
« Respuesta #3 en: Lunes 18 de Diciembre de 2006, 09:39 »
0
Hola...

Tendrás que reescribir el accept() de los filtros.

Usa uno que abra el fichero y que lea la primera línea a ve si encuentra la marca.

No lo he hecho nunca así, porque los filtros están pensados para filtrar por nombre de archivo, pero debería funcionar sin problemas. Eso sí, no te olvides de cerrar los ficheros antes de salir del método.



Suerte.




Silverfox