映射文件夹并非总是可访问

映射文件夹并非总是可访问

(我怀疑问题不在于我的代码,而在于 Windows 和访问问题,这就是为什么我认为这个问题更适合 SuperUser 而不是 StackOverflow)

我在访问映射文件夹时遇到问题。映射文件夹 (Y:) 是指向本地文件夹 C:\Projects... …\Configuration\Files\ 的链接,包含我们不同环境 (tst、dev 等) 的配置设置。它是使用 subst 命令映射的,作为以管理员身份运行的 bat 脚本。

此文件夹并不总是可见的,如下所示:

文件夹 Y: 在以下情况下可见:

  • 我使用资源管理器导航到它(它是计算机下面的一个文件夹)。
  • 我使用 Directory.Exists(C# 代码)来查看文件夹是否存在

在下列情况下,文件夹 Y: 不可见:

  • 我将 Directory.Exists 代码片段包装在 Impersonation 语句中。该语句模拟我们系统(CRM 系统)的用户。这是访问其他系统(例如 SQL 数据库)所必需的。

我做了什么:

上述方法对我都不起作用。我唯一能起作用的是将路径(在我的代码中)从 Y: 更改为明确的 C:\Projects... …\Configuration\Files,但这引发了其他问题,并不是解决问题的合适方法。

我的同事也遇到了这个问题,我们束手无策。你能帮我们吗?

我正在运行 Windows 7 Enterprise,SP1。我在 Visual Studio Ultimate 2012 中编写代码。

答案1

驱动器的映射似乎与执行映射的用户有关。当模拟另一个用户时,映射不再存在。我们解决这个问题的方法是,在模拟之后立即添加一个语句,以再次执行映射(但这次是模拟的用户执行映射)。

相关内容