Bry*_*ews 42
File.Exists正在捕获异常.提升和捕获异常的开销可能导致性能不佳.
File.Exists 像这样工作:
要检查文件是否存在,它会尝试打开文件...如果抛出异常,则文件不存在.
该过程比打开文件慢,并且不会抛出任何异常(即文件存在时).
Chr*_*s S 32
File.Exists在检查文件存在的文件之前,还要实例化CLR权限.如果你做了很多检查,另一种选择(虽然我没有尝试过性能)是PathFileExists:
[DllImport("Shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
private extern static bool PathFileExists(StringBuilder path);
void Exists()
{
// A StringBuilder is required for interops calls that use strings
StringBuilder builder = new StringBuilder();
builder.Append(@"C:\test.txt");
bool exists = PathFileExists(builder);
}
Run Code Online (Sandbox Code Playgroud)
Meh*_*ari 10
一般来说,当你搜索一堆东西时,除非你已经搜索了所有可能存在的地方,否则你无法确定它们是否存在.当搜索某些东西(在大多数类型的集合中)时,最坏的情况是该集合中不存在该项目.
我没有File.Exists特别的基准,但我非常怀疑,除非你做了数千次,否则这些情况会有明显的区别.你是如何得出这个结论的?
| 归档时间: |
|
| 查看次数: |
11366 次 |
| 最近记录: |