所以我的字符串肯定有问题。
我从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
答案 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)
大部分时间我都有这样的问题,这是因为权限。通常,文件浏览器的用户与尝试查找文件存在的文件不同。如果位置的一切正确,下一个要查看的地方就是权限。