File.Exists找不到文档,但它就在那里

时间:2013-09-20 19:43:27

标签: c# console-application

所以我的字符串肯定有问题。

我从SQL数据库中获取值,如下所示:

while (reader.Read())
{
    // Row Values
    // 0 = UID
    // 1 = CreatedDate
    // 2 = Location
    documentID = reader.GetGuid(0);
    fileName = reader.GetSqlValue(0).ToString() + ".zip";
    location = reader.GetString(2);
    createdDate = reader.GetDateTime(1);

从数据库返回的值如下:

GUID: DC5A30D7-D528-4BA4-AA5A-5ECEB2CD9006
fileName: DC5A30D7-D528-4BA4-AA5A-5ECEB2CD9006.zip
Location: \\192.168.22.1\documentation


if (!DoesFileExist(location + fileName))
{
    // Log error to database
}

static bool DoesFileExist(string location)
        {
            bool doesExist = false;
            if (File.Exists(location))
            {
                doesExist = true;
            }

            return doesExist;
        }

当它到达File.Exists(location)部分时,它就会传递它,好像它不存在一样。 Bur it it ...当我在资源管理器中导航到它时,我发现zip文件很好......

我在这里做错了什么?

UID CreatedDate Location
DC5A30D7-D528-4BA4-AA5A-5ECEB2CD9006    2009-10-28 11:17:06.690 \\192.168.22.1\documentation

3 个答案:

答案 0 :(得分:3)

正如上面的示例所示,Location + Filename不会生成正确的完整文件名。将路径与文件名分开没有反斜杠 我建议使用类(System.IO.Path)中的相应方法Path.Combine来生成正确的完整文件名

if (!DoesFileExist(Path.Combine(location, fileName)))

答案 1 :(得分:1)

我看到它的方式,你发送:“\ 192.168.22.1 \ documentationDC5A30D7-D528-4BA4-AA5A-5ECEB2CD9006.zip”到方法。

尝试在那里放另一个“\”。

答案 2 :(得分:0)

大部分时间我都有这样的问题,这是因为权限。通常,文件浏览器的用户与尝试查找文件存在的文件不同。如果位置的一切正确,下一个要查看的地方就是权限。