隨筆-4  評(píng)論-15  文章-0  trackbacks-0
          現(xiàn)在要求輸入一個(gè)文件的目錄,之后將里面所有的備份文件刪除,備份文件都是以“.bak”或".BAK"結(jié)尾

          package TestFile;

          import java.io.File;
          import java.io.FileFilter;

          /**
           * @author 王業(yè)平
           * 用于過濾以.bak結(jié)尾或包含.bak的文件
           * 返回值的含義是 當(dāng)包含該字符串時(shí)返回true
           */

          public class ListFilter implements FileFilter{
           @Override
           public boolean accept(File file) {

              //測(cè)試指定的文件(夾)是否應(yīng)該包含在指定的列表中(就是測(cè)定作為過濾的條件是否滿足)
            /*
             * 如果是目錄的話,直接返回true 表示是滿足條件的一情況
             */
            if(file.isDirectory()) return true;
            /*
             * 如果不是目錄的話,通過判斷在其名字里是否含有規(guī)定的字符,
             * 因?yàn)閟tring的index方法在不滿足條件(不含有指定的字符)是返回-1
             * 所以以此來確定是否滿足條件
             */
            String name=file.getName();
              /*
               * int index=name.indexOf(".bak"); 
               *
           return index!=-1;
            * 這種方法不安全,可能會(huì)刪除文件名中還含有.bak的文件,備份文件還可以用.BAK結(jié)尾
              */
              return name.endsWith(".bak")||name.endsWith(".BAK");

           }
          }


          使用此類

          package TestFile;

          import java.io.File;
          /**
           * @author Administrator
           * 涉及到遞歸調(diào)用
           */

          public class BakDelete{
           public static void main(String[] args){
            BakDelete bd=new BakDelete();
            bd.listBakFile(new File("E:\\"));
           }
           public void listBakFile(File file){
            File[] fs=file.listFiles(new ListFilter());
            for(int i=0;i<fs.length;i++){
             if(fs[i].isFile()){
              System.out.println(fs[i].getAbsolutePath());//打印文件絕對(duì)路徑
              fs[i].delete();
             }else{
              //System.out.println(fs[i].getAbsolutePath());
              listBakFile(fs[i]);
             }    
            }
            //System.out.println(fs.length);
           }
          }

          posted on 2009-04-23 13:54 王業(yè)平 閱讀(1243) 評(píng)論(7)  編輯  收藏

          評(píng)論:
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-23 15:04 | xx
          這是什么字體,,,  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-23 15:17 | 王業(yè)平
          @xx
          我靠,你的問題這么專業(yè),不屑于我的技術(shù),雖然技術(shù)是次了點(diǎn),你想說什么,就是只問字體,還是另有它意,字體里面就有啊,一試不就知道了,我也是隨便用的。  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-23 15:27 | xx
          @王業(yè)平
          呵呵 關(guān)注過你的博客一段時(shí)間,看到你的字體比較特別而已,你寫的東西不錯(cuò),只是我提不出新的看法而已,不是不屑,不要誤會(huì),,,  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-23 15:37 | 王業(yè)平
          謝謝啊,我說呢,怎么剛注冊(cè)就有人關(guān)注了,原來我沒注冊(cè)之前就有老兄關(guān)照了,你是地球上第一個(gè)回復(fù)我blog的人,謝謝啊。我給你查了查,但是不知在你說的到底是哪個(gè)字體,所以你自己去查吧。哈哈,可以到word上試一試嘛。
            回復(fù)  更多評(píng)論
            
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-23 17:17 | lvq810
          還是不要用indexOf(),如果遇到類似a.bak.txt的文件就會(huì)誤刪,可以使用endsWith()或substring(),還需要判斷大小寫字母.bak or .BAK  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-24 09:10 | 王業(yè)平
          說的很有道理,多謝指點(diǎn)。用index不安全  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于FileFilter使用的一點(diǎn)心得 2009-04-29 09:27 | hongyong

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 平江县| 湛江市| 砀山县| 宜宾市| 铜陵市| 宜川县| 桓台县| 五河县| 类乌齐县| 广饶县| 射洪县| 班玛县| 阿拉善右旗| 吉安市| 蕲春县| 高州市| 武穴市| 芜湖市| 绥芬河市| 揭西县| 威海市| 吉林省| 逊克县| 禄丰县| 汝阳县| 成安县| 古蔺县| 同江市| 宽城| 郧西县| 斗六市| 涟源市| 容城县| 文成县| 绥德县| 二连浩特市| 马尔康县| 江城| 涡阳县| 慈溪市| 苏州市|