Dois métodos:
1. Copie todos os arquivos e pastas em um diretório
2. Mesclar todos os arquivos de texto em um diretório de arquivos no mesmo arquivo
A cópia do código é a seguinte:
pacote com.firewolf.test;
importar java.io.file;
importar java.io.fileInputStream;
importar java.io.fileOutputStream;
importar java.io.ioException;
classe pública FileReaderutil {
public static void main (string [] args) {
tentar {
// MergeFile (novo arquivo ("c:/documentos e configurações/Liuxing0/Desktop/new Pasder/Script"), novo arquivo ("d: /all.sql"));
copyfiles (novo arquivo ("g:/estuda materiais/notas"), novo arquivo ("g:/teste"));
} catch (ioexception e) {
E.PrintStackTrace ();
}
}
/**
* Copie todos os arquivos em um diretório de arquivos.
* Diretório de arquivos original @param Sourcepath
* @param despatath desition diretório
*/
Private Static Void CopyFiles (File Sourcefile, File Desfile) lança ioexception {
if (sourcefile.isfile ()) {
Arquivo de arquivo = novo arquivo (desfile.getpath ()+"/"+fontefile.getName ());
FileInputStream fis = new FileInputStream (Sourcefile);
FileOutputStream fos = new FileOutputStream (FILE);
int len = 0;
byte [] buf = novo byte [1024];
while ((len = fis.read (buf))! = -1)
fos.write (buf, 0, len);
}outro{
Arquivo dir = novo arquivo (desfile.getpath ()+"/"+fontefile.getName ());
if (! Dir.Exists ())
Dir.mkdir ();
String [] nomes = fontefile.list ();
for (int i = 0; i <names.length; i ++) {
copyfiles (novo arquivo (fonte dofile.getPath ()+"/"+nomes [i]), dir);
}
}
}
/**
* Um método para combinar de maneira única todos os arquivos em um diretório de arquivos em um arquivo (principalmente usado para mesclar muitos arquivos de texto)
* @param sourcefile
* @param decfile
* @retornar
* @THOWSows IoException
*/
Mergefile de arquivo estático privado (arquivo fonte do arquivo, arquivo deCfile) lança ioexception {
String [] filelist = fontefile.list ();
para (string string: filelist) {
Arquivo de arquivo = new File (Sourcefile.getPath ()+"/"+string);
if (! file.isdirectory ()) {
FileInputStream fis = new FileInputStream (File);
FileOutputStream fos = new FileOutputStream (DECFILE, TRUE);
byte [] buffer = novo byte [1024];
int len = 0;
while ((len = fis.read (buffer))! = -1)
fos.write (buffer, 0, len);
}
outro {
DECFILE = MergeFile (arquivo, DECFILE);
}
}
retornar decfile;
}
}