这是一个拷贝文件夹的JAVA程序,主要功能是将一个文件夹拷贝到另一个指定的文件夹,如果指定的文件夹不存在,就创建一个新的文件夹,然后遍历原文件夹,将这个文件夹里的文件拷贝到指定的文件夹里。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| package cn.com.lihuan.exam; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class Test { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File srcFile; while (true) { srcFile = new File(scanner(“请输入原文件目录:”)); if (srcFile.exists() && srcFile.isDirectory()) { break; } } File descFile = new File(scanner(“请输入目标目录:”)); if (!descFile.exists()) { descFile.mkdirs(); } CopyFile cf = new CopyFile(); cf.copy(srcFile, descFile); } public static String scanner(String message) { Scanner sc = new Scanner(System.in); System.out.println(message); return sc.nextLine(); } } class CopyFile { public CopyFile() { super(); } public void copy(File srcFile, File descFile) throws IOException { File[] fileLists = srcFile.listFiles(); if (fileLists != null) { for (File f : fileLists) { if (f.isDirectory()) { File mkDir = new File(descFile.getAbsolutePath() + “\\” + f.getName()); if (!mkDir.exists()) { mkDir.mkdirs(); } copy(f, mkDir); } else { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f.getAbsolutePath())); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(descFile.getAbsolutePath() + “\\” + f.getName())); int len; byte[] b = new byte[1024 * 8]; while ((len = bis.read(b)) != –1) { bos.write(b, 0, len); } bis.close(); bos.close(); } } } } }
|
如果你发现了Bug,请留言反馈给我!