Java中如何删除目录内容?
枚举目录后,我现在需要删除所有文件。
我用:
final File[] files = outputFolder.listFiles();
files.delete();
但这并没有删除目录。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
枚举目录后,我现在需要删除所有文件。
我用:
final File[] files = outputFolder.listFiles();
files.delete();
但这并没有删除目录。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
您必须对每个文件执行此操作:
然后调用
You have to do this for each File:
Then call
要删除包含文件的文件夹,无需循环或递归搜索。您可以直接使用:
该功能将目录删除该文件夹及其中的所有文件。
To delete folder having files, no need of loops or recursive search. You can directly use:
This function will directory delete the folder and all files in it.
删除目录之前必须先删除该目录中的所有文件。
有些第三方库具有许多常用实用程序,包括为您执行此操作的库:
FileUtils.forceDelete(..)
All files must be delete from the directory before it is deleted.
There are third party libraries that have a lot of common utilities, including ones that does that for you:
FileUtils.forceDelete(..)
Files.deleteRecursively(..)
您无法删除数组!这应该工作得更好:
但如果文件夹不为空,它就不起作用。对于这种情况,您将需要递归地下降到文件夹层次结构并删除所有内容。是的,遗憾的是 Java 默认情况下无法做到这一点......
You can't delete on an array ! This should work better :
But it won't work if the folders are not empty. For this cases, you will need to recursively descend into the folder hierarchy and delete everything. Yes it's a shame Java can't do that by default...
这是在没有库的情况下解决问题的一种可能的解决方案:
Here is one possible solution to solve the problem without a library :
您无法删除
File
数组。正如所有其他答案所建议的那样,您必须在删除文件夹之前删除每个单独的文件......You can't delete an
File
array. As all of the other answers suggest, you must delete each individual file before deleting the folder...将 FileUtils 与 FileUtils.deleteDirectory() 一起使用;
Use FileUtils with FileUtils.deleteDirectory();