2011-07-17 94 views
0

以下代碼正在刪除特定文件夾中的文件和DIRS。 我怎麼能調整它,所以它會只刪除文件夾中的文件,但不是迪爾斯防止方向刪除

代碼:

  File folder = new File(path); 
      File[] listOfFiles = folder.listFiles(); 
      if (listOfFiles != null) 
      { 
       for (int i = 0; i < listOfFiles.length; i++) 
       { 
        logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!"); 
        listOfFiles[i].delete(); 
       } 
      } 

感謝, 射線。

回答

1
 File folder = new File(path); 
     File[] listOfFiles = folder.listFiles(); 
     if (listOfFiles != null) 
     { 
      for (int i = 0; i < listOfFiles.length; i++) 
      {      
       if(!listOfFiles[i].isDirectory()){ // if not a directory... 
        logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!"); 
        listOfFiles[i].delete(); 
       } 
      } 
     } 

有意義嗎? :)

1

容易...

if (!listOfFiles[i].isDirectory()) { 
    listOfFiles[i].delete(); 
} 

FWIW - 您當前的代碼將只刪除子目錄。根據javadoc,刪除非空目錄將會失敗;即返回false

0

你必須使用File.isDirectory

if(!listOfFiles[i].isDirectory()) 
{ 
    logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!"); 
    listOfFiles[i].delete(); 
}