Holaquetal,
A ver, tengo un método que me está dando por culo porque básicamente no me funciona y no sé el motivo. Para poneros en situación, tengo 2 carpetas con X archivos (las 2 carpetas el mismo número de archivos). Lo que intento es renombrar los archivos de una de ellas, con el nombre que le corresponde del archivo "equivalente" de la otra carpeta.
Podría esperarse que se renombraran con el nombre del archivo que le salga de la polla y no coincidan los de la carpeta A y la carpeta B, pero directamente me está fallando el renombrar y me está empezando a tocar los reales. Con código seguro que se ve mejor, este es el asunto:
public static void renameThumbs() {
File dirThumbs = new File("C:\\Users\\aKiLeS\\Desktop\\XMLParser\\Thumbs");
File dirVids = new File("C:\\Users\\aKiLeS\\Desktop\\XMLParser\\Vids");
File thumbs[] = dirThumbs.listFiles(new ImageFileFilter());
File vids[] = dirVids.listFiles(new VideoFileFilter());
if (vids.length == thumbs.length) {
int i = 0;
for (File fV : vids) {
File fT = thumbs[i];
if(!fT.renameTo(fV))
System.out.println("Rename failed");
i++;
}
} else {
System.out.println("File count does not match in 'Vids' and 'Thumbs'");
}
}
Seguramente sea una gitanada, como se puede ver es bastante simple, pero la teoría me dice que debería funcionar. Sin embargo siempre me devuelve false el rename y me muestra el mensajito de fail. Los archivos fT y fV se recuperan correctamente y en el path va la ruta completa de cada uno de los respectivos archivos (aunque me he fijado que va separada por doble backslash \, no sé si debería ser así). A pesar de que todo parece estar correctamente, el rename me dice que peine pa mi.
¿Alguna idea de dónde puede estar el problema? Gracias por adelantado.