我的C#代码无法在我的C盘中看到我的目录...即使该目录存在

时间:2016-02-01 17:16:22

标签: c# directory

我的目录位于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上运行代码。

2 个答案:

答案 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"