JAVA

          人生若只如初見,何事秋風(fēng)悲畫扇。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            50 隨筆 :: 25 文章 :: 157 評(píng)論 :: 0 Trackbacks

          經(jīng)常對(duì)一些文件,文件夾操作,自己寫一個(gè)不是難事.但有個(gè)可以撿的應(yīng)該也不是壞事.
          將destFileName解壓到mExtractToDir??目錄:

          public ? void ?extract(destFileName,mExtractToDir?)?
          ?
          {?
          ??String?fileName?
          = ? new ?String();?
          ??String?destFileName?
          = ? new ?String();?
          ??
          ??
          // do?our?own?buffering;?reuse?the?same?
          ??buffer? byte []?buffer? = ? new ? byte [ 16384 ];?
          ??
          try ?
          ??
          {?
          ???ZipFile?archive?
          = ? new ?ZipFile(?mZipFile?);?
          ???
          for ?(?Enumeration?e? = ?archive.entries();?e.hasMoreElements();?)?
          ???
          {?
          ????
          // get?the?next?entry?in?the?archive?
          ????ZipEntry?entry? = ?(ZipEntry)e.nextElement();?
          ????
          ????
          if ?(? ! ?entry.isDirectory()?)?
          ????
          {?
          ?????fileName?
          = ?entry.getName();?
          ?????fileName?
          = ?fileName.replace( ' / ' ,?File.separatorChar);?
          ?????
          ?????destFileName?
          = ?mExtractToDir? + ?fileName;?
          ?????File?destFile?
          = ? new ?File(destFileName);
          ?????
          ?????
          // create?the?destination?path,?if?needed?????
          ?????String?parent? = ?destFile.getParent();?
          ?????
          if ?(?parent? != ? null ?)?
          ?????
          {?
          ??????File?parentFile?
          = ? new ?File(parent);?
          ??????
          if ?(? ! ?parentFile.exists()?)?
          ??????
          {?
          ???????
          // create?the?chain?of?subdirs?to?the?file?
          ???????parentFile.mkdirs();?
          ??????}
          ?
          ?????}
          ?
          ?????
          ?????
          // get?a?stream?of?the?archive?entry's?bytes?
          ?????InputStream?in? = ?archive.getInputStream(entry);?
          ?????
          ?????
          // open?a?stream?to?the?destination?
          ?????file?OutputStream?out? = ? new ?FileOutputStream(destFileName);?
          ?????
          ?????
          // Repeat?reading?into?buffer?and?writing?buffer?to?file,?
          ?????
          // until?done.?Count?will?always?be?#?bytes?read,?until? // EOF?when?it?is?-1.?
          ????? int ?count;?
          ?????
          while ?(?(count? = ?in.read(buffer))? != ? - 1 ?)?
          ?????
          {?
          ??????out.write(buffer,?
          0 ,?count?);?
          ?????}
          ?in.close();?out.close();?
          ?????}
          ?
          ????}
          ?
          ???}
          ?
          ??
          catch (?ZipException?ze?)?
          ??
          {?
          ???ze.printStackTrace();?
          ??}
          ?
          ??
          catch ?(?NullPointerException?npe?)?
          ??
          {?
          ???npe.printStackTrace();?
          ??}
          ?
          ??
          catch ?(?IOException?ioe?)?
          ??
          {?
          ???ioe.printStackTrace();?
          ??}
          ?
          ??
          catch ?(?SecurityException?se?)
          ??
          {?
          ???se.printStackTrace();?
          ??}
          ?
          ?}

          ?

          將某一文件夾的內(nèi)容清空:

          public ? void ?cleanImportDirectory(String?iPath)?
          ?
          {?
          ??
          try ?
          ??
          {?
          ???File?theFile?
          = ? new ?File(iPath);?
          ???File?allFiles[]?
          = ?theFile.listFiles();?
          ???
          ???
          for ?( int ?i? = ? 0 ;?i? < ?allFiles.length;?i ++ )?
          ???
          {?
          ????
          if (allFiles[i].isDirectory())?
          ????
          {?
          ?????cleanImportDirectory(allFiles[i].toString());?
          ?????allFiles[i].delete();?
          ????}
          ?
          ????
          else
          ????
          {?
          ?????allFiles[i].delete();?
          ????}
          ?
          ???}
          ?
          ??}
          ?
          ??
          catch ?(NullPointerException?npe)?
          ??
          {?
          ???mLogger.severe(iPath?
          + ? " ?did?not?exist?and?was?not?cleaned!! " );?
          ??}
          ?
          ?}
          ?

          ?

          將某一文件夾的內(nèi)容移到指定文件夾:

          private ? void ?copyCourse(String?iInFilePath,?String?iOutFilePath)? throws ?IOException?
          ?
          {?
          ??
          try ?
          ??
          {?
          ???String?inDirName?
          = ?iInFilePath;?
          ???inDirName.replace(
          ' / ' ,?java.io.File.separatorChar);?
          ???
          ???File?tempFile?
          = ? new ?File(inDirName);?
          ???File[]?fileNames?
          = ?tempFile.listFiles();?
          ???
          ???String?outDirName?
          = ?iOutFilePath;?
          ???outDirName?
          = ?outDirName.replace( ' / ' ,?java.io.File.separatorChar);?
          ???File?tempDir?
          = ? new ?File(outDirName);?
          ???tempDir.mkdirs();?
          ???
          for ?( int ?i? = ? 0 ;?i? < ?fileNames.length;?i ++ )?
          ???
          {?
          ????String?tempString?
          = ?outDirName? + ?java.io.File.separatorChar? + ?fileNames[i].getName();?
          ????
          if (fileNames[i].isDirectory())?
          ????
          {?
          ?????File?dirToCreate?
          = ? new ?File(tempString);?
          ?????dirToCreate.mkdirs();?
          ?????copyCourse(fileNames[i].getAbsolutePath(),?tempString);?
          ????}

          ????
          else ?
          ????
          {?
          ?????BufferedInputStream?in?
          = ? new ?BufferedInputStream( new ?FileInputStream(fileNames[i]));?
          ?????BufferedOutputStream?out?
          = ? new ?BufferedOutputStream( new ?FileOutputStream(tempString));?
          ?????
          int ?c;?
          ?????
          while ((c? = ?in.read())? != ? - 1 )?
          ?????
          {?
          ??????out.write(c);?
          ?????}

          ?????
          ?????in.close();?
          ?????out.close();?
          ????}
          ?
          ???}
          ?
          ??}
          ?
          ??
          catch ?(IOException?IOE)?
          ??
          {?
          ????IOE.printStackTrace();?
          ??}
          ?

          我暫時(shí)只碰到了這三個(gè)...

          posted on 2006-03-30 17:46 Jkallen 閱讀(1304) 評(píng)論(1)  編輯  收藏 所屬分類: JEE學(xué)習(xí)

          評(píng)論

          # re: 文件夾,壓縮包操作 2006-04-28 10:06 小蔥卷餅
          大哥,有 壓縮包最加方法嗎?  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 绥江县| 宣武区| 英德市| 凤城市| 正镶白旗| 丰顺县| 砚山县| 乌拉特后旗| 漯河市| 阆中市| 太仆寺旗| 建水县| 荣成市| 卓资县| 台州市| 突泉县| 临西县| 江达县| 连城县| 同德县| 金寨县| 张掖市| 固阳县| 雷州市| 巴林左旗| 鄂尔多斯市| 上饶市| 佛山市| 元朗区| 盖州市| 时尚| 云龙县| 黄大仙区| 嫩江县| 青阳县| 盖州市| 武定县| 绩溪县| 宜兰县| 蓬溪县| 郸城县|