Карта сетевого диска: «net.exe USE» против WshNetwork.MapNetworkDrive? - PullRequest
6 голосов
/ 20 марта 2012

Я ищу карту накопителя в моей программе.Мои пользователи могут использовать любую версию Windows от XP и выше.Поэтому мне нужен самый универсальный метод.Я использовал первый метод раньше, и в целом он работал хорошо для меня.Но на самом деле нет способа отловить ошибки (о которых я все равно знаю).Второй легко позволит мне обернуть вокруг него блок 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 Ответ

4 голосов
/ 21 марта 2012

Другой подход заключается в том, чтобы вызвать фактический API Win32 (WNetAddConnection2A, WNetCancelConnection2A и т. Д.).Проверить http://www.codeguru.com/csharp/csharp/cs_network/windowsservices/article.php/c12357/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...