访问远程主机共享文件夹

/******************'*********************************************
     *函 数 名:   ConnectShareDir
     *参    数:   TCHAR tcUserName[], 远程登录用户名
                  TCHAR tcUserPwd[],    远程登录密码
                  TCHAR szShareSource[] 共享文件夹名称
     *返回值:     bool  成功返回true  失败放回false
     *函数功能:   建立本地远程登录映射
*****************************************************************/
bool ConnectShareDir(TCHAR tcUserName[], TCHAR tcUserPwd[], TCHAR szShareSource[]);


bool ConnectShareDir(TCHAR szUserName[], TCHAR szUserPwd[], TCHAR szShareSource[])
{
	bool bRes = true;
	NETRESOURCE net_Resource;
	net_Resource.dwDisplayType = RESOURCEDISPLAYTYPE_DIRECTORY;
	net_Resource.dwScope = RESOURCE_CONNECTED;
	net_Resource.dwType = RESOURCETYPE_ANY;
	net_Resource.dwUsage = 0;
	net_Resource.lpComment = TEXT("");
	net_Resource.lpLocalName = TEXT("C:");  //映射成本地驱动器C:
	net_Resource.lpProvider= NULL;
	net_Resource.lpRemoteName = szShareSource;//TEXT("\\\\172.230.240.111\\ShareDir"); // \\servername\共享资源名
	DWORD dwFlags = CONNECT_UPDATE_PROFILE;
	DWORD dw = WNetAddConnection2(&net_Resource, szUserPwd, szUserName, dwFlags);
	switch(dw)
	{
	case ERROR_SUCCESS:
		ShellExecute(NULL, TEXT("open"), TEXT("C:"), NULL, NULL, SW_HIDE);
		OutputDebugString(_T("连接共享主机 ERROR_SUCCESS\r\n"));
		bRes = true;
		break;
	case ERROR_ACCESS_DENIED:
		OutputDebugString(_T("连接共享主机没有权访问 ERROR_ACCESS_DENIED\r\n"));
		bRes = false;
		break;
	case ERROR_ALREADY_ASSIGNED:
		ShellExecute(NULL, TEXT("open"), TEXT("C:"), NULL, NULL, SW_HIDE);
		OutputDebugString(_T("连接共享主机已经存在  ERROR_ALREADY_ASSIGNED\r\n"));
		bRes = true;
		break;
	case ERROR_INVALID_ADDRESS:
		OutputDebugString(_T("连接共享主机IP地址无效  ERROR_INVALID_ADDRESS\r\n"));
		bRes = false;
		break;
	case ERROR_NO_NETWORK:
		OutputDebugString(_T("连接共享主机网络不可达  ERROR_NO_NETWORK\r\n"));
		bRes = false;
		break;
	default:
		bRes = false;
	}
	return bRes;
}

访问时

        CFile file;
	file.Open(_T("\\\\172.230.240.111\\ShareDir\\13_1.jpg"), CFile::modeReadWrite||CFile::modeCreate);
        DWORD dwError = GetLastError();
	file.Close();

本地测试可能存在找不到网络路径  dwError为53的错误

上述方式,亲测,在使用的时候对密码和用户名似乎不生效,只能是不需要用户名和密码的共享才可以访问;下面方式写到程序中才能保证用户名密码生效

net use \\172.18.0.15\sharedDoc password /user:administrator

net use * /del  /y 删除



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值