-2

我正在尝试查看图片是否存在,但这表示不存在,并且路径是正确的!路径是正确的,并且有图片,但这总是转到“其他”。

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

if (File.Exists(path))
{ 
    //Do something here 
}
else 
{
}
4

3 回答 3

12

可能是权限问题。从文档中

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

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

此外,如 deerchao 的评论中所述,仅当给定的路径是文件而不是目录File.Exists时才返回 true 。同样,从文档中:

如果 path 描述了一个目录,则此方法返回 false。

于 2012-05-20T19:15:41.677 回答
5

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

用于Directory.Exists查找目录是否存在。

string path = @"c:\folder";

if (Directory.Exists(path))
{ 
    //Do something here 
}
else 
{
}

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

于 2012-05-20T19:16:47.200 回答
4

我假设您正在尝试检查指定目录中是否存在任何文件?在这种情况下,您可以使用:

string path = @"c:\folder";

if (Directory.Exists(path) &&
    Directory.GetFiles(path).Any())
{
    //Do something here 
}
else
{
}

在 .NET 4 及更高版本中,您可以通过将GetFiles调用替换为EnumerateFiles.

于 2012-05-20T19:18:41.410 回答