我有一个 friend 在这个问题上与我有不同意见,我只是想就这种情况下谁对谁错获得一些反馈。
FileInfo file = ...;
if (file.Exists)
{
//File somehow gets deleted
//Attempt to do stuff with file...
}
我的 friend 指出的问题是,“那么当我检查文件是否存在时如果文件存在怎么办?没有什么可以防止在检查后文件立即被删除并尝试访问它导致异常。那么,是否值得事先检查是否存在?”
我唯一能想到的是 MSDN 清楚地检查了他们的示例,所以肯定还有更多。 MSDN - FileInfo .但是,这确实让我想知道……额外的电话是否值得?
最佳答案
我会同时拥有 if (file.Exists)
和 try catch
。仅依赖异常处理并不能明确表达您的想法。 if (file.Exists)
不言自明。
如果有人在检查和处理文件之间的那一毫秒内删除了文件,您仍然可以获得异常。然而,还有其他条件可能导致异常: 文件是只读的;您没有请求的安全权限,等等。
关于c# - 使用网络/文件系统调用时防止异常(预防性维护)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823395/