我的目录位于C:\ Testing \ Event Log 123
123部分是时间戳。我的代码运行并在完成后在C:\ Testing中生成带时间戳的目录。我有这段代码检查该目录是否存在:
string dirToCopy = @"C:\Testing\Event Log " + timestamp;
if (System.IO.Directory.Exists(dirToCopy))
{
APILog.AddMessage("Event System log directory found.");
}
else
{
APILog.AddMessage("Event System log directory not found.");
}
该目录确实存在于该位置,但是else语句的日志消息是显示的内容。我不认为权限存在问题,因为如果是这样的话,我会得到一个安全异常...那么为什么我的代码现在看不到我用自己的眼球看到的目录呢?我尝试输出dirToCopy以确保它与目录的实际名称相匹配。它们匹配,所以我很惊讶我的代码没有看到它。
编辑以获取更多信息:我的代码在客户端PC上运行。它生成目录并将其粘贴到主PC的C:\ Testing目录中。主PC的C:\ Testing目录是客户端也可以访问的一种共享目录。这有关系吗? C:\测试在主PC上,我在主PC上运行代码。
答案 0 :(得分:0)
所以你要找的目录是"C:\Testing\Event Log2016.01.26"
或者"C:\Testing\Event Log\2016.01.26"
重点是 - 最后的斜线?是不是错过了?
您还可以考虑使用Path.Combine()
来构建路径字符串
答案 1 :(得分:0)
这就是MSDN所说的
如果您没有对目录的最低只读权限,则Exists方法将返回false。
https://msdn.microsoft.com/en-us/library/system.io.directory.exists.aspx
因此它不会引发安全异常....所以如果你对该目录有读取权限,请检查一次
<强>更新强>
如果它是共享目录,那么您的路径应该如下所示
string dirToCopy = @"\\MainPC\Testing\Event Log 123" (Assuming testing folder is shared)
如果它是UNC路径,那么你的路径应该是这样的
string dirToCopy = @"\\MainPC\C$\Testing\Event Log 123"