那什么更好呢?要使用这样的结构:
if (File.Exist(fileName))
{
// do something with file...
}
只是
try
{
// do something with file.
}
catch(Exception ex)
{
}
使用 File.Exist() 方法成本高吗?
谢谢!
最佳答案
前者存在竞争条件:另一个进程可能会在 File.Exists
返回 true 之后但在您打开它之前删除该文件。后者没有。即使您事先检查过,如果您想忽略不存在的文件,您仍然应该捕获异常。
应该是吧
if (File.Exists(fileName))
{
try
{
// ...
}
catch (FileNotFoundException)
{ }
}
或
try
{
// ...
}
catch (FileNotFoundException)
{ }
前者重复检查,如果文件在网络共享上,这可能会很慢,后者针对非异常情况引发异常(已处理),使调试复杂化。两者各有千秋。就个人而言,我通常选择第二种,但两者都可以。
关于c# - File.Exists 方法是否获得大量资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529061/