Foro de elhacker.net

Programación => Java => Mensaje iniciado por: andaluz en 17 Mayo 2010, 19:12 pm



Título: programacion grafica
Publicado por: andaluz en 17 Mayo 2010, 19:12 pm
tengo que realizar un programa que seleccionando unos ficheros de una carpeta por su extension me los borre, me gustaria saber come puedo implementar el metodo de borrar para realizar esta accion.


Título: Re: programacion grafica
Publicado por: andaluz en 17 Mayo 2010, 19:43 pm
otro pequeño problema es este:

Código
  1. if(ruta.equals(!enc))
  2.  

en el que ruta es un String y enc es boolean. me dice que los tipos son incompatibles y si pongo == tambien me da fallo. de que manera lo podria poner??


Título: Re: programacion grafica
Publicado por: we4rt en 17 Mayo 2010, 20:17 pm
Hola pura vida!!!

para la 2° pregunta podría probar algo como esto:

Código
  1. if(ruta.equals(String.valueof(enc)))

String.valueof(), esa función lo que hace es convertir una expresión o valor a cadenas de caracteres, de esa forma podrías hacer la comparación.

para la 1° pregunta:

no se si ya probaste el método "delete()" de la clase "File"?
o la pregunta iba enfocada a otra cosa?


Título: Re: programacion grafica
Publicado por: andaluz en 17 Mayo 2010, 20:30 pm
lo he probado, pero yo tengo que meter una futa a de una carpeta y dentro de esa carpeta hay varios ficheros, con diferentes extensiones, si quiero borrar los ficheros que tengan una extension concreta, ej: "*.txt", como lo tendria que poner??


Título: Re: programacion grafica
Publicado por: we4rt en 17 Mayo 2010, 20:50 pm
Podrías probar algo así=

Código
  1. private void borrar(String ruta){
  2.        try{
  3.            File directorio= new File(ruta);
  4.  
  5.            for(File f : directorio.listFiles()){
  6.                if(f.isFile() && f.getName().endsWith(".txt")){
  7.                    f.delete();
  8.                }else if(f.isDirectory()){
  9.                     borrar(f.getPath());
  10.                }
  11.            }
  12.  
  13.        }catch(FileNotFoundException fnfe){
  14.            // manejo error
  15.        }catch(IOException ioe){
  16.            // manejo error
  17.        }
  18.    }
  19.  


Título: Re: programacion grafica
Publicado por: andaluz en 17 Mayo 2010, 21:45 pm
una duda??
puede haber un try{}catch(){} y dentro otro, de esta manera??

hay una linea que me da un error, le he comentado // por que me da este error, aver si me pueen ayuar

Código
  1.        File f1;
  2.        File directorio;
  3.        FileWriter fw;
  4.        InputStreamReader isr;
  5.        BufferedReader br;
  6.  
  7.        try
  8.        {
  9.            f1=new File("eliminados.txt");
  10.            fw=new FileWriter(f1);
  11.  
  12.            if(this.chkInforme.isSelected())
  13.            {
  14.                this.cmbTipoInforme.setEnabled(true);
  15.            }
  16.            if(this.chkTemporales.isSelected())
  17.            {
  18.                try
  19.                {
  20.                    File directorio=new File(ruta); // porque me da este error esta linea??
  21.  
  22.                    for(File f:directorio.listFiles())
  23.                    {
  24.                        if(f.isFile() && f.getName().endsWith(".txt, .tmp, .ini"))
  25.                        {
  26.                            f.delete();
  27.                            fw.write("\nSe han eliminado los ficheros temporales.");
  28.                        }
  29.                        else
  30.                        {
  31.                            fw.write("\nNo se han eliminado los ficheros temporales.");
  32.                        }
  33.                    }
  34.                }
  35.                catch(Exception ex)
  36.                {
  37.  
  38.                }
  39.                //f1.delete("*.tmp,*.dat,*.ini");
  40.  
  41.            }
  42.            else
  43.            {
  44.                if(this.chkTexto.isSelected())
  45.                {
  46.                    fw.write("\nSe han eliminado los ficheros de texto.");
  47.                }
  48.                else
  49.                {
  50.                    if(this.chkMultimedia.isSelected())
  51.                    {
  52.                        fw.write("\nSe han eliminado los ficheros de multimedia.");
  53.                    }
  54.                    else
  55.                    {
  56.                        if(this.chkWeb.isSelected())
  57.                        {
  58.                            fw.write("\nSe han eliminado los ficheros de web.");
  59.                        }
  60.                        else
  61.                        {
  62.                            if(this.chkProgramas.isSelected())
  63.                            {
  64.                                fw.write("\nSe han eliminado los ficheros de programas.");
  65.                            }
  66.                            else
  67.                            {
  68.                                if(this.chkComprimidos.isSelected())
  69.                                {
  70.                                    fw.write("\nSe han eliminado los ficheros comprimidos.");
  71.                                }
  72.                            }
  73.                        }
  74.                    }
  75.                }
  76.            }
  77.            this.txtRuta.setText("");
  78.            this.chkCualquiera.setSelected(false);
  79.            this.chkTemporales.setSelected(true);
  80.            this.chkTexto.setSelected(false);
  81.            this.chkMultimedia.setSelected(false);
  82.            this.chkWeb.setSelected(false);
  83.            this.chkProgramas.setSelected(false);
  84.            this.chkComprimidos.setSelected(false);
  85.            this.chkInforme.setSelected(true);
  86.        }
  87.        catch(Exception ex)
  88.        {
  89.            System.out.println("Error en la lectura del fichero eliminados.txt "+ex);
  90.        }
  91.  


Título: Re: programacion grafica
Publicado por: we4rt en 17 Mayo 2010, 22:04 pm
Lo del try/catch si se puede, pero no le veo la gracia, porque en los 2 les estas manejando con una general y no especifica...

En cuanto al error que te aparece el valor de ruta que es? una dirección o es solo el nombre del archivo? y si es la dirección se están pasando bien los separadores de directorios? por ejemplo para el caso de win: C:\\Archivo y no C:\Archivo.

Pon el mensaje del error...

Y no se si estaré en lo correcto pero creo que esto no te va a funcionar:

Código
  1. if(f.isFile() && f.getName().endsWith(".txt, .tmp, .ini"))

me párese que seria así:

Código
  1. if(f.isFile() && (f.getName().endsWith(".txt") || f.getName().endsWith(".tmp") || f.getName().endsWith(".ini")))


Título: Re: programacion grafica
Publicado por: andaluz en 17 Mayo 2010, 22:42 pm
gracias por tus consejos we4rt, entonces quitare el try{} catch(){} que esta dentro, ya es verdad, no tiene sentido que uno este dentro de otro, si tengo alguna duda mas lo preguntare por aqui.


Título: Re: programacion grafica
Publicado por: we4rt en 17 Mayo 2010, 23:03 pm
Ok, con gusto!!


Título: Re: programacion grafica
Publicado por: andaluz en 18 Mayo 2010, 17:10 pm
si yo tngo que buscar un directorio a traves de una ruta, como hago para que el programa me dirija a ese directorio??

si en un txtRuta escribo la ruta

c:\directorio

y dentro de la carpeta directorio tengo una serie de ficheros, como puedo hacer para dirigirme a ese directorio para borrar una serie de ficheros??


Título: Re: programacion grafica
Publicado por: we4rt en 18 Mayo 2010, 17:58 pm
La pregunta tuya es para verlo gráficamente o para que el programa lo maneje internamente? porque si es interno solo le pasas la ruta al constructor de la clase "File" y el encontrara el directorio...


Título: Re: programacion grafica
Publicado por: andaluz en 18 Mayo 2010, 18:57 pm
estaria bien esto?

Código
  1.            f1=new File("informe.txt");
  2.            fw=new FileWriter(f1);
  3.            File directorio=new File(ruta);
  4.  
  5.            this.txtRuta.setText(ruta);
  6.  

ya que quiero que lo que se borre se guarde en un fichero


Título: Re: programacion grafica
Publicado por: we4rt en 20 Mayo 2010, 23:51 pm
Hola pira vida!!

Disculpa no he podido probar el código, casi no he tenido tiempo de nada....

para la pregunta anterior no entiendo esto=
Código
  1. this.txtRuta.setText(ruta);
, eso para que lo usas? es que si lo que quieres es guardar en fichero no se para que usas eso, amenos que le quieras mostrar al usuario la ruta del archivo que se elimino, pero ay solo le mostrarías una (en caso de que sea un JTextfield).

Y bueno yo vi el código muy rápidamente y me genero una duda no se si fue que yo no la vi, pero no se 'ruta' donde lo declaras y como le asignas el valor a ella?


Título: Re: programacion grafica
Publicado por: andaluz en 21 Mayo 2010, 15:46 pm
vale, ya lo he resuelto, gracias por tu ayuda.


Título: Re: programacion grafica
Publicado por: we4rt en 21 Mayo 2010, 16:33 pm
En todas