gpt4 book ai didi

java - 为什么 Files.deleteDirectoryContents() 在 Guava 中被弃用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:29 24 4
gpt4 key购买 nike

在 Guava 10+ 中,Google 弃用了 Files.deleteDirectoryContents() . JavaDoc 说

Deprecated. This method suffers from poor symlink detection and race conditions. This functionality can be supported suitably only by shelling out to an operating system command such as rm -rf or del /s. This method is scheduled to be removed from Guava in Guava release 11.0

我对为什么存在竞争条件感到困惑。我认为这种方法实际上很有用,并且发现对操作系统进行炮击是一个糟糕的解决方案。作者能否分享做出此决定的原因?

最佳答案

I am confused on why there is a race condition.

例如,假设一个线程调用 Files.deleteDirectoryContents() 并且第二个线程(或外部进程)同时在目录中创建一个新文件。

当你从通话中返回时,你能相信目录是空的吗?不!

无论如何,如果您发现此方法的功能很有用……尽管它有缺陷……您可以随意复制代码,对其进行调整,然后将其嵌入到您的应用程序中。 (只需检查 Guava 源代码许可证并确保您符合它。)

Can the authors share why the made this decision?

我认为他们已经有了;请参阅弃用通知。如果您需要更多信息,请尝试搜索问题跟踪器和 Guava 讨论组。您甚至可以尝试在讨论组中礼貌地提问,但如果您的议程是改变他们的想法,我怀疑您会成功。

关于java - 为什么 Files.deleteDirectoryContents() 在 Guava 中被弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com