Java - [AYUDA] Como puedo mover archivos a subdirectorios cada x cantidad?

 
Vista:

[AYUDA] Como puedo mover archivos a subdirectorios cada x cantidad?

Publicado por Rodrigo (2 intervenciones) el 26/07/2018 23:53:49
Buenas, estoy empezando en JAVA, no pretendo que me resuelvan el ejercicio, pero me gustaría que me orienten un poco, desde ya mil gracias.

Quiero mover, por ejemplo, 25,000 archivos de una carpeta a otra, pero que en la carpeta destino se creen subcarpetas cada 5000 archivos con X nombre.

Por ejemplo:

Directorio A = Carpeta madre 20.000 archivos

Directorio B = carpeta1 con 5,000 archivos
Directorio B = carpeta2 con 5,000 archivos
Directorio B = carpeta3 con 5,000 archivos
Directorio B = carpeta4 con 5,000 archivos

Lo de mover el directorio completo pude, pero lo de subdirectorios no puedo.

Agradezco mucho una respuesta


Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

[AYUDA] Como puedo mover archivos a subdirectorios cada x cantidad?

Publicado por Tom (1523 intervenciones) el 31/07/2018 18:01:42
Quizás algo como esto funcionaría ... (te recomiendo que copies, en vez de mover, ya borrarás los originales cuando todo haya ido bien)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void moveFiles(Path from, Path to) throws IOException {
    int slice = 1, count = 1;
    DirectoryStream<Path> ps = Files.newDirectoryStream(from);
    Path dest = Files.createDirectory(to.resolve("slice" + slice));
 
    for(Path p : ps) {
        Files.copy(p, dest.resolve(p.getFileName()));
        if(count == 5000) {
        count = 1;
        slice++;
        dest = Files.createDirectory(to.resolve("slice" + slice));
        } else {
        count++;
        }
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

[AYUDA] Como puedo mover archivos a subdirectorios cada x cantidad?

Publicado por plagtthw (2 intervenciones) el 31/07/2018 22:22:27
Muchas gracias por tomarte la molestia =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar