列出并删除新创建的文件

时间:2017-07-19 10:14:13

标签: java file

我在自己的代码中使用了一些第三方代码,这会在文件夹中创建一些文件。文件在目录中,但当我列出它们或尝试在同一程序会话(运行)中删除它时,我不能这样做。 但是在下一个较新的程序运行中,我能够列出并删除这些旧文件,但它仍无法使用该会话中创建的文件。可能是什么原因?

以下是列出和删除文件的代码段。

private void clearWorkspace(File workSpace) { 
 // Delete copied files and generated results from the work space 
 //clearing work space 
 foreach file in workSpace.listFiles() { 
  if (file.isDirectory()) { 
   foreach f in file.listFiles() { 
    f.delete(); 
  } 
 } else {  
   file.delete(); 
  } 
 } 
}

2 个答案:

答案 0 :(得分:1)

问题可能是,您的外部程序对要删除的文件仍有handle。如果外部程序使用例如文件编写器,则必须先关闭此文件编写器,然后才能删除该文件。

答案 1 :(得分:0)

在这里,您编写的代码只能帮助您处理2级文件夹层次结构。

Java提供了删除目录的方法。使用下面的代码,你不需要任何循环。

import org.apache.commons.io.FileUtils;

FileUtils.deleteDirectory(new File(destination));

文档为here

如果有权限或用户清除工作区,请检查权限。