File.Exists()在C#中返回false

时间:2015-05-22 13:57:47

标签: c# .net

这很奇怪。该文件已存在,但在使用File.Exist(路径)时仍然出现错误:

string path = @"‪D:\Design\SVG\black_circle.svg";

截图

Screenshot of the error

我也尝试过Python中的等效函数:

os.path.isfile(r"D:\Design\SVG\black_circle.svg")
//output -- True

此屏幕截图显示了文件系统。

Screenshot of FileSystem

是什么让File.Exists()返回false?

1 个答案:

答案 0 :(得分:3)

我在answer to Stack Overflow question What is causing NotSupportedException (“The given path's format is not supported”) while using a valid path?找到了答案。

如果我使用从Windows资源管理器直接复制的路径,C#将无法读取该文件,而IndexOf(':')将为2,但如果在Visual Studio中写入路径,则会工作正常,IndexOf(':')将为1。

string copiedPath = @"?D:\Design\SVG\black_circle.svg";
int a = copiedPath.IndexOf(':')  //output 2
string hardCodedpath = @"D:\Design\SVG\black_circle.svg";
int i = hardCodedpath .IndexOf(':'); //output 1