如果没有路径验证,File.Exists的目的是什么?

Pet*_*ica 2 .net msdn

当我读到这个方法时System.IO.File.Exists(string path),我对这句话感到困惑

不应将Exists方法用于路径验证,此方法仅检查路径中指定的文件是否存在.

对我来说,两个语句"这条路径中的文件存在"和"[文件]的路径是有效的"几乎是同义词,所以我遗漏了一些东西.什么?为什么我不应该验证路径File.Exists()

Han*_*ant 7

因为下一句话:

将无效路径传递给Exists将返回false

通常总是会产生异常.只是不在File.Exists()的情况下:

   bool miracle = File.Exists(":::");
Run Code Online (Sandbox Code Playgroud)

所以要小心,文件可能实际存在,但你可能只是弄乱了字符串.你无法分辨,没有例外可以警告你.

请记住,这不是File.Exists()的问题结束的地方.你也不能相信真正的回报价值.在多任务操作系统上运行代码的危险,该文件可能在一个纳秒后被另一个进程删除.这可能会导致一些非常神秘的崩溃当然:)最好完全避免它,只是尝试打开文件(这是原子的)并捕获异常,如果它不存在.


pli*_*nth 5

如果路径在语法上不正确怎么办?Exists()会返回false意味着您现在可以创建该文件,这不是真的.