[DllImport("mpr.dll", CharSet = CharSet.Ansi)] private static extern int WNetAddConnection2(NetResource netResource, string password, string username, int flag); [DllImport("mpr.dll", CharSet = CharSet.Ansi)] private static extern int WNetCancelConnection2(string lpname, int flag, bool force); /// <summary> /// 映射网络驱动器 /// </summary> /// <param name="localName">本地盘符 如U:</param> /// <param name="remotePath">远程路经 如\\\\172.18.118.106\\f</param> /// <param name="userName">远程服务器用户名</param> /// <param name="password">远程服务器密码</param> /// <returns>true映射成功,false映射失败</returns> public static bool WNetReflectDrive(string localName, string remotePath, string userName, string password) { NetResource netResource = new NetResource(); netResource.dwScope = 2; netResource.dwType = 0x1; netResource.dwDisplayType = 3; netResource.dwUsage = 1; netResource.LocalName = localName; netResource.RemoteName = remotePath; netResource.provider = null; int ret = WNetAddConnection2(netResource, password, userName, 0); if (ret == 0) return true; return false; } /// <summary> /// 断开网路驱动器 /// </summary> /// <param name="lpName">映射的盘符</param> /// <param name="flag">true时如果打开映射盘文件夹,也会断开,返回成功 false时打开映射盘文件夹,返回失败</param> /// <returns></returns> public static bool WNetDisconnectDrive(string lpName, bool flag) { int ret = WNetCancelConnection2(lpName, 0, flag); if (ret == 0) return true; return false; }
我是先连接,后断开,应该只是断开了磁盘映射,nas什么的应该还是能连上的,但是部署到别人电脑上的时候,就显示用户密码不正确,我很费解,不知道是怎么回事,
你们有什么比较合理的解释吗?对这个情况
你的路径是外网还是内网,如果是内网,两台电脑是否属于同一个局域网,是否属于用一个域,不建议采用这种方式去实现远程访问文件,这种很不稳定,建议采用ftp,http等方式
是内网的,我也觉得很不稳定,都不知道为什么部署到别的电脑上的时候,有个nas是能连上的,另外一个nas是连不上的,连不上的那个,路径读不到,连接失败。。也有可能是nas设置了什么导致的,没找到具体原因。
用了net use/ delete