在 Java 中删除非空目录
假设我有一个代表目录的目录,那么只有当目录为空时才会删除该目录。我在网上找到了几个示例,这些示例使用或获取目录中的所有文件,然后递归遍历目录结构并删除所有文件。但是,由于可以创建无限递归的目录结构(在Windows和Linux中(带有符号链接)),因此以这种风格编写的程序可能永远不会终止。File f
f.delete()
File.listFiles()
File.list()
那么,有没有更好的方法来编写这样的程序,这样它就不会陷入这些陷阱呢?我是否需要跟踪我走过的任何地方,并确保我不会兜圈子,或者有没有更好的方法?
更新:为了回应一些答案(谢谢大家!) - 我宁愿代码不遵循符号链接并留在它应该删除的目录中。我可以依靠Commons-IO实现来做到这一点吗,即使在Windows的情况下也是如此?