2011-07-17 92 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(); 
}