论坛首页 Java企业应用论坛

文件压缩与删除(整理)

浏览 2855 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-09  
java 代码
  1. /**  
  2.      *   
  3.      * @param inputFileName  
  4.      *          需要压缩的文件路径  
  5.      * @param outputFileName  
  6.      *          输出的文件名  
  7.      * @throws Exception  
  8.      */  
  9.     public boolean zip(String inputFileName, String outputFileName){   
  10.         boolean bNodFoundFile=true;   
  11.         ZipOutputStream out = null;   
  12.         try {   
  13.             out = new ZipOutputStream(new FileOutputStream(   
  14.                     outputFileName));   
  15.             zip(out, new File(inputFileName), "");   
  16.             /*注意当压缩文件夹为空时,将抛出异常*/  
  17.             out.close();   
  18.         } catch (IOException e) {   
  19.             bNodFoundFile=false;   
  20.         }finally{   
  21.             if(out!=null){   
  22.                 try {   
  23.                     out.close();   
  24.                     out=null;   
  25.                 } catch (IOException e) {   
  26.                 }   
  27.             }   
  28.         }   
  29.            
  30.         return bNodFoundFile;   
  31.     }   
  32.   
  33.     private void zip(ZipOutputStream out, File f, String base){   
  34.         FileInputStream in =null;   
  35.         try{   
  36.             if (f.isDirectory()) {   
  37.                 File[] fl = f.listFiles();   
  38.                 /*此处解决压缩未端数据不正确*/  
  39.                 if (System.getProperty("os.name").startsWith("Windows")) {   
  40.                     base = base.length() == 0 ? "" : base + "\\";  
  41.                     out.putNextEntry(new ZipEntry(base));  
  42.                 } else {  
  43.                     base = base.length() == 0 ? "" : base + "/";   
  44.                     out.putNextEntry(new ZipEntry(base));   
  45.                 }   
  46.                 int indexSize=fl.length;   
  47.                 for (int i = 0; i < indexSize; i++) {   
  48.                     zip(out, fl[i], base + fl[i].getName());   
  49.                 }   
  50.             } else {   
  51.                 out.putNextEntry(new ZipEntry(base));   
  52.                 in = new FileInputStream(f);   
  53.                 int b;   
  54.                 byte[] buffer = new byte[4096];   
  55.                 while ((b = in.read(buffer)) != -1) {   
  56.                     out.write(buffer,0,b);   
  57.                 }   
  58.             }   
  59.         }catch(IOException e){   
  60.         } finally{   
  61.             try {   
  62.                 if(in!=null){   
  63.                     in.close();   
  64.                     in=null;   
  65.                 }   
  66.             } catch (IOException e1) {   
  67.             }   
  68.         }   
  69.     }   
  70.   
  71.     /**  
  72.      * 删文件  
  73.      * @param deleteFilePath  
  74.      *          删除文件路径  
  75.      */  
  76.     public void deleteFile(final String deleteFilePath){   
  77.         File file=new File(deleteFilePath);   
  78.         deleteFile(file);   
  79.         file.delete();   
  80.     }   
  81.        
  82.     /**  
  83.      * 实施删除文件  
  84.      * @param file  
  85.      */  
  86.     private void deleteFile(File file){   
  87.         if(file.isDirectory()){   
  88.             File[] fl = file.listFiles();   
  89.             int indexSize=fl.length;   
  90.             for(int i=0; i<indexSize; i++){   
  91.                 deleteFile(fl[i]);   
  92.             }   
  93.             /*此处删除目录*/  
  94.             file.delete();   
  95.         }else{   
  96.             /*此处删除文件*/  
  97.             file.delete();   
  98.         }   
  99.     }  
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics