Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220

          刪除文件和目錄

          Posted on 2009-05-24 20:48 啥都寫點 閱讀(388) 評論(0)  編輯  收藏 所屬分類: J2SE
          關鍵技術:
          • File的delete方法能刪除文件和目錄
          • 當File指向一個目錄時,只有當目錄為空(沒有子文件和子目錄)時,才能用delete方法將其刪除。

          package book.io;
          import java.io.File;
          /**
           * 刪除文件或目錄
           
          */
          public class DeleteFileUtil {
              
          /**
               * 刪除文件,可以是單個文件或文件夾
               * 
          @param fileName    待刪除的文件名
               * 
          @return    文件刪除成功返回true,否則返回false
               
          */
              
          public static boolean delete(String fileName){
                  File file 
          = new File(fileName);
                  
          if (!file.exists()){
                      System.out.println(
          "刪除文件失敗:" + fileName + "文件不存在!");
                      
          return false;
                  } 
          else {
                      
          if (file.isFile()){
                          
          return DeleteFileUtil.deleteFile(fileName);
                      } 
          else {
                          
          return DeleteFileUtil.deleteDirectory(fileName);
                      }
                  }
              }
              
          /**
               * 刪除單個文件
               * 
          @param fileName    被刪除文件的文件名
               * 
          @return    單個文件刪除成功返回true,否則返回false
               
          */
              
          public static boolean deleteFile(String fileName){
                  File file 
          = new File(fileName);
                  
          //如果文件路徑對應的文件存在,并且是一個文件,則直接刪除。
                  if (file.exists() && file.isFile()){
                      
          if(file.delete()){
                          System.out.println(
          "刪除單個文件" + fileName + "成功!");
                          
          return true;
                      } 
          else {
                          System.out.println(
          "刪除單個文件" + fileName + "失敗!");
                          
          return false;
                      }
                  }
          else{
                      System.out.println(
          "刪除單個文件失敗:" + fileName + "文件不存在!");
                      
          return false;
                  }
              }
              
              
          /**
               * 刪除目錄(文件夾)以及目錄下的文件,只刪除文件夾
               * 
          @param dir    被刪除目錄的文件路徑
               * 
          @return    目錄刪除成功返回true,否則返回false
               
          */
              
          public static boolean deleteDirectory(String dir){
                  
          //如果dir不以文件分隔符結尾,自動添加文件分隔符。
                  if (!dir.endsWith(File.separator)){
                      dir 
          = dir + File.separator;
                  }
                  File dirFile 
          = new File(dir);
                  
          //如果dir對應的文件不存在,或者不是一個文件夾,則退出
                  if (!dirFile.exists() || (!dirFile.isDirectory())){
                      System.out.println(
          "刪除目錄失敗:" + dir + "目錄不存在!");
                      
          return false;
                   }
                  
          boolean flag = true;
                  
          //刪除文件夾下所有文件(包括子目錄)
                  File[] files = dirFile.listFiles();
                  
          for (int i = 0; i < files.length; i++) {
                      
          //刪除子文件
                      if (files[i].isFile()){
                          flag 
          = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
                          
          if (!flag){
                              
          break;
                          }
                      }
                      
          //刪除子目錄
                      else if (files[i].isDirectory()){
                          flag 
          = DeleteFileUtil.deleteDirectory(files[i].getAbsolutePath());
                          
          if (!flag){
                              
          break;
                          }
                      }
                  }
                  
          if (!flag){
                      System.out.println(
          "刪除目錄失敗!");
                      
          return false;
                  }
                  
          //刪除當前目錄
                  if (dirFile.delete()){
                      System.out.println(
          "刪除目錄" + dir + "成功!");
                      
          return true;
                  } 
          else {
                      
          return false;
                  }
              }

              
          public static void main(String[] args) {
                  
          //刪除單個文件
                  String file = "C:/temp/temp0/temp1/temp.txt";
                  DeleteFileUtil.deleteFile(file);
                  System.out.println();
                  
          //刪除一個目錄
                  String dir = "C:/temp/temp0/temp1";
                  DeleteFileUtil.deleteDirectory(dir);
                  System.out.println();
                  
          //刪除文件
                  dir = "C:/temp/temp0";
                  DeleteFileUtil.delete(dir);
              }
          }
          運行結果:


          刪除單個文件失敗:C:/temp/temp0/temp1/temp.txt文件不存在!

          刪除單個文件C:\temp\temp0\temp1\temp14479.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14480.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14481.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14482.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14483.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14484.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14485.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14486.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14487.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp14488.txt成功!
          刪除單個文件C:\temp\temp0\temp1\temp2\tempFile.txt成功!
          刪除目錄C:\temp\temp0\temp1\temp2\成功!
          刪除目錄C:/temp/temp0/temp1\成功!

          刪除目錄C:/temp/temp0\成功!



                                                                                                                 --    學海無涯
                  

          主站蜘蛛池模板: 怀安县| 吉林省| 齐齐哈尔市| 乾安县| 晴隆县| 梓潼县| 鄂伦春自治旗| 环江| 元阳县| 三河市| 铁力市| 八宿县| 彩票| 武安市| 泰和县| 蓬莱市| 团风县| 资兴市| 都匀市| 凤山市| 昌吉市| 金平| 江安县| 嘉义县| 扎赉特旗| 大同县| 岐山县| 广州市| 普陀区| 新竹县| 信宜市| 黄浦区| 嘉义市| 璧山县| 新密市| 富源县| 桦川县| 荥经县| 大城县| 永安市| 延津县|