import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Vector; /** * @author 小阿哥 * @date 2011-07-05 * */ public class MyMain { public static void main(String str[]) { long curretTime = System.currentTimeMillis(); String copyPathString="D:\\100个游戏源代码"; String pastePathString="E:\\小阿哥\\爱\\妈妈"; new MyMain().fileCopyAndPaste(copyPathString, pastePathString); long endTime = System.currentTimeMillis(); long time = (endTime - curretTime); System.out.println("小阿哥_从\""+copyPathString+"\"复制到\""+pastePathString+"\"所用的时间为:"+time + "毫妙,即"+time/1000+"妙"); } /** * @author 小阿哥 (复制+粘贴)功能 * @param sourcePath * 源路径 D:\*\* * @param pastePath * 粘贴路径 E:\*\*\* * */ public void fileCopyAndPaste(String sourcePath, String pastePath) { Vector<File> fileAll = copyFile(new File(sourcePath));// 复制. System.out.println("文件个数:"+fileAll.size()); long totalContentSize=0; for (int i = 0; i < fileAll.size(); i++)// 粘贴 { File fileSourFile = fileAll.elementAt(i); String namePasteFile = fileSourFile.getAbsolutePath().replace( sourcePath, pastePath); File filePaste = new File(namePasteFile); File filePasteParent = filePaste.getParentFile(); if (!filePasteParent.exists()) {// 创建文件夹. filePasteParent.mkdirs(); } try { filePaste.createNewFile();// 创建文件 totalContentSize+=pasteFileContent(fileSourFile, filePaste);// 向文件中写内容 } catch (Exception e) { System.out.println("copy__EX:" + e.toString() + "FileName:" + namePasteFile); } } System.out.println("本次拷贝总字节数为:"+totalContentSize+"byte,即"+totalContentSize/1024+"KB,即"+totalContentSize/1024/1024+"MB"); } /** * @author 小阿哥 粘贴文件内容 * @param sourcePath * 源路径 * @param pastePath * 粘贴路径 * */ private int pasteFileContent(File sourceFile, File newFile) { int avaliable=0; try { FileOutputStream fileNewStream = new FileOutputStream(newFile); FileInputStream fileSourceStream = new FileInputStream(sourceFile); avaliable=fileSourceStream.available(); System.out.println("文件:"+newFile.getName()+" size:"+avaliable+"byte"); byte buffer[] = new byte[512]; int length = -1; while ((length = fileSourceStream.read(buffer)) != -1) { fileNewStream.write(buffer, 0, length); fileNewStream.flush(); } fileNewStream.close(); fileSourceStream.close(); } catch (Exception e) { System.out.println("copyFileContent()__EX:" + e.toString()); } return avaliable; } /** * * @author 小阿哥 * @descrition 类似复制功能,获得文件夹下的所有文件 * * */ private Vector<File> copyFile(File file) { Vector<File> vtFile = new Vector<File>(); if (file.isFile()) { vtFile.add(file); return vtFile; } File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { Vector<File> vtSubFile = copyFile(files[i]); if (!vtSubFile.isEmpty()) { for (int j = 0; j < vtSubFile.size(); j++) { vtFile.add(vtSubFile.elementAt(j)); } } } return vtFile; } }