java中拷贝删除文件或目录,
// 复制文件 public static void copyFile(File sourceFile, File targetFile) throws Exception { BufferedInputStream inBuff = null; BufferedOutputStream outBuff = null; try { if(sourceFile.isDirectory()){ return; } // 新建文件输入流并对它进行缓冲 inBuff = new BufferedInputStream(new FileInputStream(sourceFile)); if(!targetFile.exists()){ try{ targetFile.getParentFile().mkdirs(); targetFile.createNewFile(); }catch(Exception e){ System.out.println(targetFile.getAbsolutePath()); throw e; } } // 新建文件输出流并对它进行缓冲 outBuff = new BufferedOutputStream(new FileOutputStream(targetFile)); // 缓冲数组 byte[] b = new byte[256]; int len; while ((len = inBuff.read(b)) != -1) { outBuff.write(b, 0, len); } // 刷新此缓冲的输出流 outBuff.flush(); } finally { // 关闭流 if (inBuff != null) inBuff.close(); if (outBuff != null) outBuff.close(); } } /** * * @param filepath * @throws IOException */ public static void del(String filepath) throws IOException { File f = new File(filepath);// 定义文件路径 if (f.exists() && f.isDirectory()) {// 判断是文件还是目录 if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除 f.delete(); } else {// 若有则把文件放进数组,并判断是否有下级目录 File delFile[] = f.listFiles(); int i = f.listFiles().length; for (int j = 0; j < i; j++) { if (delFile[j].isDirectory()) { del(delFile[j].getAbsolutePath());// 递归调用del方法并取得子目录路径 } delFile[j].delete();// 删除文件 } } } }