单级文件夹的复制
public class file9 {
public static void main(String[] args) throws IOException {
File src = new File("C:\\case");
String name = src.getName();
File destfolder = new File("C:\\itcast", name);
if (!destfolder.exists()) {
destfolder.mkdir();
}
File[] files = src.listFiles();
for (File srcfile : files) {
String name1 = srcfile.getName();
System.out.println(name1);
File destFile = new File(destfolder, name1);
copy(srcfile, destFile);
}
}
private static void copy(File srcfile, File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcfile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}
多级文件夹的复制
public class file10 {
public static void main(String[] args) throws IOException {
File srcFile = new File("C:\\itcast");
File destFile = new File("C:\\case");
copy(srcFile, destFile);
}
private static void copy(File srcFile, File destFile) throws IOException {
if (srcFile.isDirectory()) {
String name = srcFile.getName();
File newFolder = new File(destFile, name);
if (!newFolder.exists()) {
newFolder.mkdir();
}
File[] files = srcFile.listFiles();
for (File file : files) {
copy(file, newFolder);
}
} else {
File newFile = new File(destFile, srcFile.getName());
copyFile(srcFile, newFile);
}
}
private static void copyFile(File srcfile, File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcfile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}