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