在我的应用程序中,我正在读取配置文件,如果该文件不可用,则抛出异常.
if (!File.Exists(configurationFile))
{
throw new ArgumentException("Configuration file is missing.");
}
Run Code Online (Sandbox Code Playgroud)
这里发生的是即使文件存在,flow也会转到throw语句.我还注意到,如果我从if块中删除了throw语句,那么这个流程正常工作,即如果文件存在,则控制不会进入if块.
以前有人遇到过这个问题吗?任何指针都会有所帮助.
File.Exists会出于多种原因返回false,而不仅仅是因为文件不存在(这可以解释为什么即使文件存在也仍然失败).
来自MSDN:
如果调用者具有所需权限并且path包含现有文件的名称,则返回true;否则返回true.否则,错误.如果path为null,无效路径或零长度字符串,则此方法也返回false.如果调用者没有足够的权限来读取指定的文件,则不会抛出异常,并且无论路径是否存在,该方法都返回false.