File.Exists - 错了吗?

Sev*_*ano -3 c# asp.net path

我试图看看图片是否存在,但这表示不存在,路径是正确的!路径是正确的,它有一张图片,但这总是去"别的".

string path = @"c:\folder\pic.jpg";

if (File.Exists(path))
{ 
    //Do something here 
}
else 
{
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 12

它可能是权限问题.从文档:

如果调用者没有足够的权限来读取指定的文件,则不会抛出异常,并且无论路径是否存在,该方法都返回false.

当然,这意味着当您运行Web应用程序(通常在降低的权限下运行)而不是客户端应用程序时,您更有可能看到此问题.

另外,正如deerchao的注释中所指出的,File.Exists只有给定的路径是文件而不是目录才返回true .再次,从文档:

如果path描述目录,则此方法返回false.


Ode*_*ded 5

您正在尝试查看是否存在使用的文件夹File.Exists.这是不正确的 - 目录会失败.

使用Directory.Exists查找是否存在一个目录.

string path = @"c:\folder";

if (Directory.Exists(path))
{ 
    //Do something here 
}
else 
{
}
Run Code Online (Sandbox Code Playgroud)

另一个复杂因素是您的应用程序运行的帐户需要具有读取路径的权限 - 如果它没有权限,即使路径存在,这仍然会失败.