访问远程主机共享文件夹

/******************'*********************************************
     *函 数 名:   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的错误

猜你喜欢

转载自blog.csdn.net/qwerdf10010/article/details/80448312
今日推荐