win下局域网内下载文件

有时我们需要在局域网中下载文件,win下可以通过共享文件夹来传输文件,而在局域网内使用系统自带API来下载文件速度比自己搭建服务器快。


首先,我们要共享一个文件,WIN下首先要共享文件夹并设置无密码。


直接贴代码:

// ClinDataSer.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <WinNetWk.h>
#include <WinBase.h>
#pragma comment(lib, "mpr.lib")

#define coutl(XXX) cout<<XXX<<endl;                  //输出换行 

int _tmain(int argc, _TCHAR* argv[])
{
	//dcmtk (file://ANNET-SKY-PC/dcmtk)
	string strIp = "\\\\127.0.0.1";
	NETRESOURCE nr;
	memset(&nr, 0, sizeof(NETRESOURCE));
	nr.dwType       = RESOURCETYPE_DISK;
	nr.lpLocalName  = NULL;
	nr.lpRemoteName = (LPTSTR)(LPCTSTR)strIp.c_str();
	nr.lpProvider   = NULL;
	string strError;
	if(WNetAddConnection2(&nr, "", "Annet-Sky", CONNECT_UPDATE_PROFILE) != NO_ERROR )
	{
		DWORD dwErrCode = GetLastError();
		switch(dwErrCode) 
		{
		case ERROR_BAD_NETPATH:
			strError = "网络地址不存在或禁止匿名访问";
			break;
		case ERROR_SESSION_CREDENTIAL_CONFLICT:
			{
				strError = "用户名密码错误或用户集冲突" + strIp;
				//先删除,再重新连接
				if(NO_ERROR == WNetCancelConnection2((LPTSTR)(LPCTSTR)strIp.c_str(), CONNECT_UPDATE_PROFILE, TRUE))
				{
					coutl("删除成功!");
				}
			}
			break;
		case ERROR_ACCESS_DENIED:
			strError = "访问被禁止";
			break;
		case ERROR_LOGON_FAILURE:
			strError = "用户名或者密码错误";
			break;
		default:
			strError = "连接失败";	
		}
		coutl("Link Error!" <<strError);
	}
	else
	{
		string strSrcPath = "\\\\127.0.0.1\\dcmtk-3.6.0\\CMakeLists.txt";
		coutl("Link Ok!");
		if(CopyFile(strSrcPath.c_str(), "D:\\tet.txt", FALSE))
		{
			coutl("拷贝成功!");
		}
		else
		{
			coutl("拷贝失败");
		}
	}
	return 0;
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值