TestCopyDocuments.java
package com.sxt.parc; /* * 复制文件夹 包含文本 视频 音频 用字节流 */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class TestCopyDocuments { public static void main(String[] args) throws Exception { copyDocuments("G:\\source.txt","G:\\dest.txt"); } public static void copyDocuments(String SourcePath, String DestPath) throws Exception { //读入文件到程序 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(SourcePath)); //写入数据到文件 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(DestPath)); byte[] b = new byte[1024]; int len = 0; while((len = bis.read(b)) != -1){ bos.write(b, 0, len); } bis.close(); bos.close(); System.out.println("复制文件完成!"); } }
TestCopyFiles2.java
package com.sxt.parc; /* * 文件夹以及文件的复制 */ import java.io.File; public class TestCopyFiles2 { public static void main(String[] args) throws Exception { CopyFiles("G:\\source","G:\\dest"); System.out.println("*********复制完成**************"); } private static void CopyFiles(String sourcePath, String destPath) throws Exception { //源路径 File file = new File(sourcePath); // String name = file.getName(); // System.out.println(name); //检查源路径是否正确 if(!file.exists()){ System.out.println("请检查您的源路径是否合法!"); } //目标路径 File file2 = new File(destPath); //如果目标文件夹不存在则创建 if(!file2.exists()){ file2.mkdir();//当前目录创建 } // //列出源文件夹的文件和文件夹列表准备复制 // String[] list = file.list();//String类型 // for(String doc: list){ // System.out.println(doc); // } //列出源文件夹的文件和文件夹列表准备复制 File[] listFiles = file.listFiles(); for(File f :listFiles){ System.out.println(f.getName()); //如果是文件夹需要在目标文件夹下创建文件夹 if(f.isDirectory()){ //关键步骤:递归 //System.out.println(f+"--------->"+destPath+"\\"+f.getName()); CopyFiles(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName()); } //如果不是文件夹直接复制 if(f.isFile()){ //关键步骤:递归 //System.out.println(f+"--------->"+destPath+"\\"+f.getName()); TestCopyDocuments.copyDocuments(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName()); } } } }