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.
otro pequeño problema es este:
if(ruta.equals(!enc))
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??
Hola pura vida!!!
para la 2° pregunta podría probar algo como esto:
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?
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??
Podrías probar algo así=
private void borrar(String ruta){
try{
File directorio= new File(ruta);
for(File f : directorio.listFiles()){
if(f.isFile() && f.getName().endsWith(".txt")){
f.delete();
}else if(f.isDirectory()){
borrar(f.getPath());
}
}
}catch(FileNotFoundException fnfe){
// manejo error
}catch(IOException ioe){
// manejo error
}
}
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
File f1;
File directorio;
FileWriter fw;
InputStreamReader isr;
BufferedReader br;
try
{
f1=new File("eliminados.txt");
fw=new FileWriter(f1);
if(this.chkInforme.isSelected())
{
this.cmbTipoInforme.setEnabled(true);
}
if(this.chkTemporales.isSelected())
{
try
{
File directorio=new File(ruta); // porque me da este error esta linea??
for(File f:directorio.listFiles())
{
if(f.isFile() && f.getName().endsWith(".txt, .tmp, .ini"))
{
f.delete();
fw.write("\nSe han eliminado los ficheros temporales.");
}
else
{
fw.write("\nNo se han eliminado los ficheros temporales.");
}
}
}
catch(Exception ex)
{
}
//f1.delete("*.tmp,*.dat,*.ini");
}
else
{
if(this.chkTexto.isSelected())
{
fw.write("\nSe han eliminado los ficheros de texto.");
}
else
{
if(this.chkMultimedia.isSelected())
{
fw.write("\nSe han eliminado los ficheros de multimedia.");
}
else
{
if(this.chkWeb.isSelected())
{
fw.write("\nSe han eliminado los ficheros de web.");
}
else
{
if(this.chkProgramas.isSelected())
{
fw.write("\nSe han eliminado los ficheros de programas.");
}
else
{
if(this.chkComprimidos.isSelected())
{
fw.write("\nSe han eliminado los ficheros comprimidos.");
}
}
}
}
}
}
this.txtRuta.setText("");
this.chkCualquiera.setSelected(false);
this.chkTemporales.setSelected(true);
this.chkTexto.setSelected(false);
this.chkMultimedia.setSelected(false);
this.chkWeb.setSelected(false);
this.chkProgramas.setSelected(false);
this.chkComprimidos.setSelected(false);
this.chkInforme.setSelected(true);
}
catch(Exception ex)
{
System.out.println("Error en la lectura del fichero eliminados.txt "+ex);
}
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:
if(f.isFile() && f.getName().endsWith(".txt, .tmp, .ini"))
me párese que seria así:
if(f.isFile() && (f.getName().endsWith(".txt") || f.getName().endsWith(".tmp") || f.getName().endsWith(".ini")))
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.
Ok, con gusto!!
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??
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...
estaria bien esto?
f1=new File("informe.txt");
fw=new FileWriter(f1);
File directorio=new File(ruta);
this.txtRuta.setText(ruta);
ya que quiero que lo que se borre se guarde en un fichero
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= 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?
vale, ya lo he resuelto, gracias por tu ayuda.
En todas