Red de conocimiento informático - Aprendizaje de código fuente - Copie la carpeta de la unidad D a la unidad E y solicite el código fuente con decisión (java)

Copie la carpeta de la unidad D a la unidad E y solicite el código fuente con decisión (java)

Recursivo requerido

importar java.io.*;

/**

* Copiar una o más carpetas

*/

public class CopyDirectory {

// Carpeta de origen

static String url1 = "f:/photos"

// Carpeta de destino<; /p>

static String url2 = "d:/tempPhotos";

public static void main(String args[]) throws IOException {

// Crea la carpeta de destino

(new File(url2)).mkdirs();

// Obtiene el archivo o directorio actualmente ubicado en la carpeta de origen

Archivo[] archivo = (new File(url1)).listFiles();

for (int i = 0; i lt; file.length; i) {

if ( file[i] .isFile()) {

// copiarFile

copyFile(archivo[i], nuevo archivo(url2 archivo[i].getName()));

}

if (file[i].isDirectory()) {

// copiar directorio

String sourceDir=url1 Archivo Sparator.Sparator. (url2 File.Sparator)); // Copiar archivo

public static void copyFile(Archivo archivo fuente, Archivo archivo destino)

lanza IOException{

// Crear un nuevo flujo de entrada de archivo y almacenarlo en buffer

FileInputStream input = new FileInputStream(sourceFile);

BufferedInputStream inBuff=new BufferedInputStream(input);

// Crear un nuevo flujo de salida de archivo y almacenarlo en buffer

FileOutputStream output = new FileOutputStream(targetFile);

BufferedOutputStream outBuff = new BufferedOutputStream(output);

p>

// Matriz de búfer

byte[] b = nuevo byte[1024 * 5];

int len ​​

while ((len = inBuff. leer(b)) ! = -1) {

outBuff.write(b, 0, len);

}

// Actualiza el flujo de salida de este búfer

outBuff.flush

();

Cerrar la transmisión

inBuff. cerrar ();

outBuff.close();

salida.close()

entrada.close();

Archivo archivofuente=archivo[i]

// archivodestino

;

Archivo targetFile=new

Archivo(new File(targetDir).Archivo separador[i].getName());

Copiar archivo (sourceFile, targetFile); p>

}

if (file[i].isDirectory()) {

// Prepárese para copiar la carpeta de origen

String dir1=sourceDir "/" file[i].getName();

// Carpeta de destino para copiar

String dir2=targetDir "/" file[i].getName()

copyDirectiory(dir1, dir2);

}

}

}

}

}

}

}

}