现在的位置: 首页 > 综合 > 正文

java文件复制,删除基本操作

2013年06月17日 ⁄ 综合 ⁄ 共 2385字 ⁄ 字号 评论关闭

 
 
public static boolean deleteDirectory(String dir){
 
 //如果dir不以文件分隔符结尾,自动添加文件分隔符
 
 if(!dir.endsWith(File.separator)) {
 
  dir = dir +File.separator;
 
 }
 
 File dirFile = newFile(dir);
 
 //如果dir对应的文件不存在,或者不是一个目录,则退出
 
 if (!dirFile.exists() ||!dirFile.isDirectory()) {
 
  //System.out.println("删除目录失败"+dir+"目录不存在!");
 
  returnfalse;
 
 }
 
 boolean flag = true;
 
 // 删除文件夹下的所有文件(包括子目录)
 
 File[] files =dirFile.listFiles();
 
 for (int i = 0; i< files.length; i++) {
 
  //删除子文件
 
  if(files[i].isFile()) {
 
   flag= deleteFile(files[i].getAbsolutePath());
 
   if(!flag) {
 
    break;
 
   }
 
  }
 
  //删除子目录
 
  else {
 
   flag= deleteDirectory(files[i].getAbsolutePath());
 
   if(!flag) {
 
    break;
 
   }
 
  }
 
 }

  if (!flag) {
 
  //System.out.println("删除目录失败");
 
  returnfalse;
 
 }

  // 删除当前目录
 
 if (dirFile.delete()) {
 
  //System.out.println("删除目录"+dir+"成功!");
 
  returntrue;
 
 } else {
 
  //System.out.println("删除目录"+dir+"失败!");
 
  returnfalse;
 
 }
 
}

 

 

 
 
public static void copyFile(String oldPath,String newPath) {
 
 try {
 
  int bytesum =0;
 
  int byteread= 0;
 
  File oldfile= new File(oldPath);
 
  if(oldfile.exists()) { // 文件存在时
 
   InputStreaminStream = new FileInputStream(oldPath); // 读入原文件
 
   FileOutputStreamfs = new FileOutputStream(newPath);
 
   byte[]buffer = new byte[1444];
 
   intlength;
 
   while((byteread = inStream.read(buffer)) != -1) {
 
    bytesum+= byteread; // 字节数 文件大小
 
    fs.write(buffer,0, byteread);
 
   }
 
   inStream.close();
 
  }
 
 } catch (Exception e) {
 
  System.out.println("复制单个文件操作出错");
 
  e.printStackTrace();

  }

 }

 

 

 

 public static void fileCopy(String sFile,String oFile) throws IOException{
 
 File file = newFile(sFile);

  if (!file.exists()) {
 
  System.out.println(sFile+ " not have");
 
  return;
 
 }
 
 File fileb = newFile(oFile);

  if (file.isFile()) {
 
  if(fileb.exists()){
 
   
 
  }else{
 
   //新建文件输入流并对它进行缓冲
 
   FileInputStream input = new FileInputStream(file);
 
   BufferedInputStream inBuff=new BufferedInputStream(input);
 
   // 新建文件输出流并对它进行缓冲
 
   FileOutputStream output = new FileOutputStream(fileb);
 
   BufferedOutputStream outBuff=newBufferedOutputStream(output);
 
   // 缓冲数组
 
   byte[] b = new byte[1024 * 5];
 
   int len;
 
   while ((len =inBuff.read(b)) != -1) {
 
    outBuff.write(b, 0, len);
 
   }
 
   outBuff.flush();
 
   //关闭流
 
   inBuff.close();
 
   outBuff.close();
 
   output.close();
 
   input.close(); 
 
  }
 
  
 
 } else if (file.isDirectory()){
 
  if(!fileb.exists()) {
 
   fileb.mkdir();
 
  }
 
  String[]fileList;
 
  fileList =file.list();
 
  for (int i =0; i < fileList.length; i++) {
 
   fileCopy(sFile+ "/" + fileList[i], oFile + "/" + fileList[i]);
 
  }
 
 }
 
}

抱歉!评论已关闭.