C# 我的C代码可以';在我的C驱动器中看不到我的目录…即使该目录存在

C# 我的C代码可以';在我的C驱动器中看不到我的目录…即使该目录存在,c#,directory,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.");

我的目录位于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语句的日志消息。我不认为权限有问题,因为如果是这样的话,我会得到一个安全异常……那么为什么我的代码不能看到我现在可以用自己的眼球看到的目录呢?我尝试输出目录副本以确保它与目录的实际名称匹配。它们匹配,所以我很惊讶我的代码没有看到它


编辑以获取更多信息:我的代码在客户端PC上运行。它生成目录并将其粘贴到主PC的C:\Testing目录中。主PC的C:\Testing目录是一种共享目录,客户端也可以访问该目录。但这有关系吗?C:\Testing在主PC上,我正在主PC上运行代码。

所以您要查找的目录是
“C:\Testing\Event Log2016.01.26”
或者可能
“C:\Testing\Event Log\2016.01.26”

重点是-结尾的斜线?不见了吗

您也可以考虑使用<代码>路径>组合()>代码>来构建路径字符串

这就是MSDN所说的

如果您至少没有目录的只读权限,Exists方法将返回false

所以它不会引发安全异常…所以请检查一下您是否拥有该目录的读取权限

更新

如果它是共享目录,那么您的路径应该如下所示

string dirToCopy = @"\\MainPC\Testing\Event Log 123" (Assuming testing folder is shared)
string dirToCopy = @"\\MainPC\C$\Testing\Event Log 123"
如果它是UNC路径,那么您的路径应该如下所示

string dirToCopy = @"\\MainPC\Testing\Event Log 123" (Assuming testing folder is shared)
string dirToCopy = @"\\MainPC\C$\Testing\Event Log 123"

时间戳不是单独目录的名称。我将时间戳附加到“事件日志”的末尾,它形成目录的名称。例如,当我生成目录时,它的名称类似于“C:\Testing\Event Log 20160126”,那么执行代码的上下文呢?可能是权限问题?发布的代码没有问题。我怀疑在调试这个时可能忽略了一些简单的东西,但是我们不知道。你有目录的权限吗?我应该有权限。我编辑了这篇文章以添加更多信息。我有一台主PC,它有一台客户端PC。生成日志目录的代码在客户端PC上运行。它将目录粘贴到主PC的C驱动器上,它作为一种共享驱动器可供客户端PC使用。请确认运行客户端PC的用户有权访问您正在谈论的共享驱动器。该用户已作为管理员登录并具有权限。