Dos métodos:
1. Copie todos los archivos y carpetas en un directorio
2. Fusionar todos los archivos de texto en un directorio de archivos en el mismo archivo
La copia del código es la siguiente:
paquete com.firewolf.test;
import java.io.file;
import java.io.fileInputStream;
import java.io.fileOutputStream;
import java.io.ioException;
clase pública FileReaderutil {
public static void main (string [] args) {
intentar {
// MergeFile (nuevo archivo ("c:/documentos y configuración/liuxing0/escritorio/nueva carpeta/script"), nuevo archivo ("d: /all.sql"));
CopyFiles (nuevo archivo ("g:/estudio/notas de estudio"), nuevo archivo ("g:/test"));
} Catch (ioException e) {
E.PrintStackTrace ();
}
}
/**
* Copiar todos los archivos en un directorio de archivos.
* @param SourcePath Directorio de archivos original
* @Param Dessition Directorio de archivos de Desición
*/
Private static void copyFiles (File SourceFile, File Desfile) lanza IOException {
if (fuenteFile.ISfile ()) {
Archivo archivo = nuevo archivo (desFile.getPath ()+"/"+SourceFile.getName ());
FileInputStream fis = new FileInputStream (SourceFile);
FileOutputStream fos = new FileOutputStream (archivo);
int len = 0;
byte [] buf = nuevo byte [1024];
while ((len = fis.read (buf))! = -1)
fos.write (buf, 0, len);
}demás{
Archivo dir = nuevo archivo (desFile.getPath ()+"/"+SourceFile.getName ());
if (! dir.exists ())
dir.mkdir ();
Cadena [] nombres = fuenteFile.List ();
para (int i = 0; i <names.length; i ++) {
CopyFiles (nuevo archivo (SourceFile.getPath ()+"/"+nombres [i]), Dir);
}
}
}
/**
* Un método para combinar de manera única todos los archivos en un directorio de archivos en un archivo (utilizado principalmente para fusionar muchos archivos de texto juntos)
* @Param SourceFile
* @param decfile
* @devolver
* @throws ioexception
*/
Archivo estático privado MergeFile (File SourceFile, File Decfile) lanza IOException {
String [] fileList = fuenteFile.List ();
for (cadena de cadena: filelist) {
Archivo archivo = nuevo archivo (fuenteFile.getPath ()+"/"+String);
if (! file.isDirectory ()) {
FileInputStream fis = new FileInputStream (archivo);
FileOutputStream fos = new FileOutputStream (decfile, true);
byte [] buffer = new Byte [1024];
int len = 0;
while ((len = fis.read (buffer))! = -1)
fos.write (buffer, 0, len);
}
demás {
decfile = MergeFile (archivo, decfile);
}
}
regresar decfile;
}
}