【发布时间】:2014-10-01 14:54:25
【问题描述】:
在阅读System.IO.File.Exists(string path)的方法时,被这句话迷惑了
Exists 方法不应该用于路径验证,这个方法 仅检查路径中指定的文件是否存在。
对我来说,“此路径中的文件存在”和“[文件] 的路径有效”这两个语句几乎是同义词,所以我遗漏了一些东西。什么?为什么我不应该使用File.Exists() 验证路径?
【问题讨论】:
-
因为路径末尾的文件可能不存在,但你的路径可以。或者,最好说“如果它看起来像鸭子,叫起来像鸭子,闻起来像鸭子,那么它应该验证它所说的正在验证的东西”。
-
我的第一个想法是提醒您
File.Exists不会确认给定路径是否有效 - 这意味着像1ekj2#34\/3423&*^%*这样的东西不是有效路径或(因此)文件。然而,那段话的措辞让我觉得可能还有其他事情...... -
@CBauer 好吧,显然 File.Exists() 关注的是文件的路径,而不是目录,即 Directory.Exists()。你建议这句话的意思是“不要用它来验证包含目录的路径”?
-
顺便说一句,这不是 c# 的东西,它是 .Net BCL,因为这对于任何 .Net 语言都是一样的
-
@PeterSchneider 我的意思是,如果您编写的代码显示“CheckDirectory()”并检查该目录中的特定文件,那么该方法的名称具有误导性,如果该特定文件可能会失败文件不存在,即使它通常会存在。