我有一个朋友在这件事上和我意见不同,我只是想得到一些反馈来确定谁在这种情况下是对和错。
FileInfo file = ...;
if (file.Exists)
{
//File somehow gets deleted
//Attempt to do stuff with file...
}
我的朋友指出的问题是,“如果我检查文件是否存在,那么即使文件存在又有什么用呢?因为无法防止在检查后文件被删除,而试图访问它会导致异常。所以,在事先检查存在性是否值得?”我能想到的唯一解释是,MSDN在他们的示例中明确地进行了检查,因此必须还有更多的原因。MSDN - FileInfo。但是,这确实让我想知道...额外的调用是否值得?
file.Exists
就变得多余了。另一方面,如果我要处理大量文件,其中许多文件可能不存在,我可能会将file.Exists
放在那里,以避免触发异常处理机制的开销。 - Daniel Pratt