映射网络驱动器:“net.exe USE”vs WshNetwork.MapNetworkDrive?

时间:2012-03-20 01:02:01

标签: c# windows networking

我想在我的程序中映射一个驱动器。我的用户可以使用XP上的每个版本的Windows。所以我需要最通用的方法。我之前使用过第一种方法,一般来说它对我有用。但是真的没有办法用它来捕捉错误(无论如何我都知道)。第二个将很容易让我围绕它包装一个try / catch块,但是对于方法1的替代方案我已经完成的所有搜索,我只运行方法2一次。所以这让我想知道它是否足够可靠,适应这种多变的环境。谁能告诉我方法2在大多数情况下是否安全?

方法1

Process.Start("net.exe", @"USE Z: \\server\share /user:domain\username password").WaitForExit();

方法2引用Windows脚本宿主对象模型

IWshNetwork_Class network = new IWshNetwork_Class(); 
network.MapNetworkDrive("k:", @"\\server\share");

1 个答案:

答案 0 :(得分:4)

另一种方法是对实际的Win32 api(WNetAddConnection2A,WNetCancelConnection2A等)进行调整。 查看http://www.codeguru.com/csharp/csharp/cs_network/windowsservices/article.php/c12357/