当我读到这个方法时System.IO.File.Exists(string path),我对这句话感到困惑
不应将Exists方法用于路径验证,此方法仅检查路径中指定的文件是否存在.
对我来说,两个语句"这条路径中的文件存在"和"[文件]的路径是有效的"几乎是同义词,所以我遗漏了一些东西.什么?为什么我不应该验证路径File.Exists()?
因为下一句话:
将无效路径传递给Exists将返回false
通常总是会产生异常.只是不在File.Exists()的情况下:
bool miracle = File.Exists(":::");
Run Code Online (Sandbox Code Playgroud)
所以要小心,文件可能实际存在,但你可能只是弄乱了字符串.你无法分辨,没有例外可以警告你.
请记住,这不是File.Exists()的问题结束的地方.你也不能相信真正的回报价值.在多任务操作系统上运行代码的危险,该文件可能在一个纳秒后被另一个进程删除.这可能会导致一些非常神秘的崩溃当然:)最好完全避免它,只是尝试打开文件(这是原子的)并捕获异常,如果它不存在.