隨筆-28  評論-51  文章-10  trackbacks-0
          刪除一個非空目錄,并顯示所有被刪除的文件和目錄列表
          第一個是遞歸程序,第二個用一個LinkedList模擬實現,(java)
          程序一
           1 package file;
           2 
           3 import java.io.File;
           4 
           5 public class Del {
           6 
           7     /**
           8      * @param args
           9      */
          10     public static void main(String[] args) {
          11         // TODO Auto-generated method stub
          12 
          13         if(args.length < 1)
          14         {
          15             System.out.println("pls input the dir which u like to delete ");
          16             return;
          17         }
          18         Del d = new Del();
          19         d.del("d:\\temp");
          20         
          21         
          22     }
          23     
          24     public void del(String dir)
          25     {
          26         File f;
          27         File dirin = new File(dir);        
          28         String list[] = dirin.list();
          29         for(String li:list)
          30         {
          31             f = new File(dir+"\\\\"+li);//之前沒有考慮到的路徑問題
          32             if(f.isFile())
          33             {
          34                 System.out.println("file deleted:    "+ f.getAbsolutePath());
          35                 f.delete();            
          36             }
          37             else if(f.isDirectory())
          38             {
          39                 del(f.getAbsolutePath());
          40                 System.out.println("dir deleted:    " + f.getName());
          41             }
          42         }
          43         dirin.delete();
          44     }
          45 
          46 }
          47 

          程序二
           1 package file;
           2 
           3 import java.io.File;
           4 import java.util.LinkedList;
           5 
           6 public class FromBookDel {
           7     public void delete(File dir)
           8     {
           9         LinkedList dirs = new LinkedList();
          10         dirs.addFirst(dir);
          11         
          12         while(!dirs.isEmpty())
          13         {    boolean empty = true;
          14             File c_dir = (File)dirs.getFirst();
          15             File[] files = c_dir.listFiles();
          16             if(files.length<=0)
          17             {
          18                 System.out.println("dir deled: " + dir.getAbsolutePath());
          19                 dir.delete();
          20                 dirs.removeFirst();
          21             }
          22             for(File f: files)
          23             {
          24                 if(f.isFile())
          25                 {
          26                     System.out.println("file deled: " + f.getAbsolutePath());
          27                     f.delete();
          28                 }
          29                 else
          30                 {
          31                     empty = false;
          32                     dirs.addFirst(f);
          33                 }
          34             }
          35             if(empty)
          36             {
          37                 c_dir.delete();
          38                 dirs.removeFirst();
          39             }
          40         }
          41         
          42     }
          43     
          44     public static void main(String[]args)
          45     {
          46         FromBookDel del = new FromBookDel();
          47         del.delete(new File("d:\\temp"));
          48     }
          49 }
          50 



          posted on 2008-03-30 23:21 fullfocus 閱讀(370) 評論(0)  編輯  收藏 所屬分類: 算法
          主站蜘蛛池模板: 宜黄县| 高雄市| 阿拉善盟| 鹤岗市| 宁夏| 泸西县| 岳阳市| 交口县| 武胜县| 鄂托克旗| 金沙县| 秀山| 沙湾县| 和静县| 张北县| 新巴尔虎左旗| 阳谷县| 团风县| 吉隆县| 加查县| 鹤峰县| 进贤县| 洪泽县| 鄂托克前旗| 临颍县| 台州市| 油尖旺区| 金沙县| 新建县| 贵阳市| 徐州市| 镇远县| 高淳县| 中牟县| 彩票| 竹北市| 双鸭山市| 临高县| 嘉峪关市| 闻喜县| 西林县|