假设我有我的目录结构如下所示:删除文件,只有当所有的可删除 - 饶无辜
mydirectory中
>文件1
>文件2
>文件3
> UndeletableFile
> FILE4
假设我已经实现了一个递归算法来删除一个文件夹的内容,然后是文件夹本身和/或使用了一个极好的建议here
现在这里是我无法找到一个解决方案后,在网络上搜索一下和SO:
我想要删除整个文件夹,但我想要做到这一点只有当它会成功为每个文件和那里的子文件夹。当前的实现(确切地说为java.io.File.delete()
)将在被调用时立即删除文件,然后转到下一个文件。如果在删除文件夹的过程中中途遇到问题,则会在系统上留下UndeletableFile
和File5
以及MyDirectory
。
这种情况下是否有一种方法或最佳实践算法?
目标是让让可删除文件生效如果操作将中途失败。毕竟他们不应该死,如果他们的家能够存活下去,对吧?
我曾经想过到目前为止:
也许这将是明智的只是重命名的所有文件,而不是先删除它们,像这样
mydirectory中
> File1temp
> File2temp
> ..
之后,如果进程失败,我可以遍历目录再次重新命名所有文件恢复正常,如果成功,我可以删除它们。
但是这对我来说效率非常低,是不是有更好的解决方案? 在我看来,这应该是一个共同的问题,请提供一个链接,如果我忽略了一些东西
除您的应用程序之外,还有哪些人可以使用此文件?谁制造他们?其他过程?它由您或其第三方软件管理? – Mikhail
@Mikhail用户可能会直接影响该文件夹。它们由另一个应用程序生成。当时没有其他进程正在运行。由我管理。 **但是我想强调一下:**没关系,如果它现在失败了,我只想回到“不要删除任何东西”,如果发生什么事情 – avalancha