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

Jim*_*Del 6 c# windows networking

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

方法1

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

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

IWshNetwork_Class network = new IWshNetwork_Class(); 
network.MapNetworkDrive("k:", @"\\server\share");
Run Code Online (Sandbox Code Playgroud)

dva*_*ejo 4

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

  • 你不需要使用他的类。您可以根据他的作品创建自己的作品。 (2认同)