Foros del Web » Programación para mayores de 30 ;) » Java »

Ficheros

Estas en el tema de Ficheros en el foro de Java en Foros del Web. Hola, llevo desde ayer con este problema y me estoy comienod la cabeza demasiado porque tiene que ser mucho más fácil de lo que pienso. ...
  #1 (permalink)  
Antiguo 28/10/2012, 07:25
 
Fecha de Ingreso: septiembre-2012
Mensajes: 23
Antigüedad: 11 años, 7 meses
Puntos: 0
Ficheros

Hola, llevo desde ayer con este problema y me estoy comienod la cabeza demasiado porque tiene que ser mucho más fácil de lo que pienso. LO que quiero es crear un fichero = "fichero.xml", pero que si existe, se cree asi "fichero(1).xml Es lo que hace windows cuando se clonan ficheros con el mismo nombre en el mismo diretorio. Yo tengo lo siguiente pero no me funciona del todo:

Código PHP:
String aux = new String("fichero.xml");
            
File fichAux = new File(aux);
            
int i=1;
            while (!
fichAux.createNewFile()){                
                
aux="fichero("+i+").xml";
                
System.out.println(aux);
                
File nuevo = new File(aux);        
                
fichAux.renameTo(nuevo);
                
System.out.println("ruta: "+fichAux.getAbsolutePath());
                
i++;                
            }
    
            
FileWriter fw = new FileWriter(fichAux);
            
fw.write(textoXML);
            
fw.close(); 
Muchas gracias. Lo siento por ponerlo con etiqueta de PHP cuan es Java.
  #2 (permalink)  
Antiguo 28/10/2012, 08:54
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Ficheros

Si me explicas ... lo que quieres hacer ... te pordria ayudar


Pero no entinedo tu while ... estas preguntando si no se creo el fichero ...

Entonces tu condicion del while es incorrecta ...

Si quieres preguntar si existe ... es otro metodo


Revisa tu logica man

si quieres preguntar eso es de otra forma revisa el API ...

Última edición por AdvKael; 28/10/2012 a las 09:13
  #3 (permalink)  
Antiguo 28/10/2012, 10:08
 
Fecha de Ingreso: septiembre-2012
Mensajes: 23
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Ficheros

lo intente con fichAux.exist(), pero no se si tenia mal el cuerpo del bucle o nose pero tampoco fui capaz. createNewFile() lo k hce es crearlo si no existe, luego si existe no lo crea. Por eso puse esa condición.
  #4 (permalink)  
Antiguo 28/10/2012, 10:30
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Ficheros

Tio es ta mal tu logica revisa detenidamente lo que estas haciendo

Solo evaluas la primera ves

Por ejemplo si se llama fichero.xml y existe te va a gererar el fichero(1).xml .. eso esta bien

Pero de ahi tienes que pensar que tienes que evaluar fichero(1).xml para que se cree fichero(2).xml

y asi sucesivamente ...

Pero el cuerpo de tu bloque no estas creando el fichero

Revisa ... de manera calmada ...


Agarra un papel y lapiz y ordena tus ideas ... un pequeño diagrama de flujo


Pero como no me explicas a detalle lo que quieres hacer ... no te puedo ayudar muchoç

Última edición por AdvKael; 28/10/2012 a las 10:36
  #5 (permalink)  
Antiguo 28/10/2012, 10:45
 
Fecha de Ingreso: septiembre-2012
Mensajes: 23
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Ficheros

AdvKael, si que evaluo sucesivamente, el método renameTo() me renombra el fichero y lo compruebo. De hecho esa parte me funciona bien. Lo que no funciona bien es que si existen por ejemplo fichero.xml fichero(1).xml fichero(2).xml y genero otro me crea fichero(3).xml pero este cuarto fichero es el primero, y fichero.xml es el nuevo que he creado.
Esto es más dificil que lo que lo que quier hacer realmente, pero no sé por qué, no soy capaz. Revisaré aun así de nuevo el pseudocódigo.
  #6 (permalink)  
Antiguo 29/10/2012, 02:51
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Ficheros

Hola serdj,
yo haría un ifExist() de la carpeta que quieres crear, dependiendo de si es true, entonces creas la otra. Para controlar la numeración, extrae el numero de la carpeta que quieres crear (pero que existe), y cuando creas la nueva le sumas 1 al número y lo concatenas.

Saludos.

Etiquetas: ficheros, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:55.