0

我想从 C# 代码打开一个映射的网络驱动器,但它受密码保护,所以当我尝试直接打开它时会引发异常。有人可以在打开此驱动器时提供用户名和密码吗?异常详情:

at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)

我只是打电话System.Diagnostics.Process.Start("Z:")

4

2 回答 2

2

Z:不是文件名。[编辑:如果它没有密码保护也没关系,尝试执行你的代码并且它有效]

尝试使用ProcessStartInfo对象作为参数,因为它允许设置用户名和密码。

关于此处的 FileName 参数:

文件名是任何应用程序或文档。文档被定义为具有与其关联的打开或默认操作的任何文件类型。您可以使用操作系统提供的“文件夹选项”对话框查看已注册的文件类型及其相关应用程序。高级按钮指向一个对话框,显示是否存在与特定注册文件类型相关的打开操作。

于 2010-06-15T07:19:27.320 回答
0

也许您可能会考虑改为打开“z 驱动器”要指向的 UNC路径。提醒PC用户可以断开Z:并将其替换为他们想要的任何路径...

目前尚不完全清楚“直接启动”和“打开此驱动器”是什么意思,但如果您的代码片段建议您尝试为驱动器的文件夹启动资源管理器,那么您可以使用它ProcessStartInfo作为提供凭据的机制。

如果您尝试以编程方式访问该共享上的文件,那么您可能会研究术语模拟以在不同的凭据下运行您的文件访问代码块。使用凭证从远程、不受信任的域访问共享文件 (UNC)看起来特别有前途。

If you're trying to actually create the network drive using pre-specified credentials then there's another solution over here - https://serverfault.com/questions/47005/specifying-username-pass-as-part-of-a-unc-path-or-map-network-drives-for-a-window/47008#47008 (don't forget to disconnect it after).

于 2010-06-15T07:46:40.327 回答