- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 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/
在 Guava 10+ 中,Google 弃用了 Files.deleteDirectoryContents() . JavaDoc 说 Deprecated. This method suffers
我是一名优秀的程序员,十分优秀!