当我读到关于方法System.IO.File.Exists(string path)
时,这句话让我感到困惑
Exists方法不应用于路径验证,此方法仅检查路径中指定的文件是否存在。
对我来说,"此路径中的文件存在"one_answers"文件的路径有效"这两句话几乎是同义词,所以我缺少了一些东西。什么为什么我不应该使用File.Exists()
验证路径?
因为下一句话:
将无效路径传递给Exists会返回错误的
它通常总是生成一个异常。只是不是在File.Exists()的情况下:
bool miracle = File.Exists(":::");
所以要小心,文件可能确实存在,但您可能只是弄丢了字符串。你不能说,没有任何例外会警告你这一点。
请记住,这不是File.Exists()问题的结束。您也不能信任true返回值。在多任务操作系统上运行代码的风险在于,文件可能会在一纳秒后被另一个进程删除。当然,这可能会导致一些非常令人困惑的崩溃:)为了完全避免它,只需尝试打开文件(这是原子文件),如果不存在异常,就可以捕获它。
如果路径语法不正确怎么办?Exists()
将返回false,这意味着您现在可以创建该文件,但事实并非如此。
因为这是两件不同的事情。。。正如C Bauer所指出的,路径可以存在,但文件可能不存在。
如果路径不存在,将引发一个异常,但如果路径末尾的文件不存在,则将返回false,您可以在If语句中使用该值。如何使用它的一个例子是:
if(System.IO.File.Exists(path))
{
//write to this file
}
else
{
//create the file then write to it...
}
我一直在软件中使用它来记录文件,这样我就可以用一个函数来完成对文件的所有写入,第一次调用该函数时,它只会创建文件,然后写入。每隔一次,它就会在文件中添加行。
编辑:拼写
我认为这意味着。。。
如果文件存在于该路径中。。发现
如果该路径中不存在该路径。。。未找到
但如果文件不存在,并且您给出not OK…这并不意味着路径不存在。。。这意味着FILE不存在。。
您可以有路径,但不能有文件,并返回not FOUND