VC怎么选中多个文件?

badlyForPapers 2014-03-01 07:56:27
我要做一个ftp上传文件,需要同时上传多个文件。
我开始做的是单个文件上传,思路是:点击上传按钮,弹出对话框,选中本地路径的一个文件,就可以得到这个文件一个路径,通过调用函数(其中一个参数是选中的文件的本地路径,另外一个参数是ftp路径是固定的)就可以把这个文件上传了。

可是多个文件上传该怎么做呢?肯定不能通过对话框选中多个文件吧 ?如果通过对话框选中多个文件,那怎么得到这多个文件的路径呢?最大的问题就是如何选中多个文件以及得到这多个文件的本地路径,我实在不知道怎么办了。

好困惑啊,拜托大家帮帮我吧,我只有35分了,全部给你们吧,能提供个思路也行,最好提供源代码,谢谢你们了。
...全文
202 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_27733229 2016-10-10
  • 打赏
  • 举报
回复
大牛啊!!!!!!!!!!
「已注销」 2014-03-02
  • 打赏
  • 举报
回复
呵呵,可以用就好,
badlyForPapers 2014-03-02
  • 打赏
  • 举报
回复
引用 2 楼 mujiok2003 的回复:
依稀记得可以使用文件对话框多选,可能需设置选项,查看一下msdn吧
是么?那怎么得到路径?
mujiok2003 2014-03-02
  • 打赏
  • 举报
回复
依稀记得可以使用文件对话框多选,可能需设置选项,查看一下msdn吧
badlyForPapers 2014-03-02
  • 打赏
  • 举报
回复
没人吗?求帮助
badlyForPapers 2014-03-02
  • 打赏
  • 举报
回复
引用 4 楼 zhangyonghui2117 的回复:
自己用的部分代码:
CFileDialog openFileDlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT, _T( "所有文件 (*.*)|*.*||" ),AfxGetMainWnd());
	const int nMaxFiles = 1000;
	CHAR* nMaxPathBuffer = new CHAR[ nMaxFiles*MAX_PATH ] ;
	openFileDlg.m_ofn.lpstrFile = nMaxPathBuffer;
	openFileDlg.m_ofn.lpstrFile[0] = NULL;
	openFileDlg.m_ofn.nMaxFile= nMaxFiles*MAX_PATH;

	// 点击确定按钮
	if(openFileDlg.DoModal()== IDOK)
	{
		
		if ( nMaxPathBuffer )
		{
			//选择多个文件时获得其文件名
			POSITION posStart=openFileDlg.GetStartPosition();
			while ( posStart )
			{
				// 路径名在这里依次获得
				CString filePathName = openFileDlg.GetNextPathName(posStart);
				
			}
		}
		
	}
谢谢,分全部给你了。
「已注销」 2014-03-02
  • 打赏
  • 举报
回复
自己用的部分代码:
CFileDialog openFileDlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT, _T( "所有文件 (*.*)|*.*||" ),AfxGetMainWnd());
	const int nMaxFiles = 1000;
	CHAR* nMaxPathBuffer = new CHAR[ nMaxFiles*MAX_PATH ] ;
	openFileDlg.m_ofn.lpstrFile = nMaxPathBuffer;
	openFileDlg.m_ofn.lpstrFile[0] = NULL;
	openFileDlg.m_ofn.nMaxFile= nMaxFiles*MAX_PATH;

	// 点击确定按钮
	if(openFileDlg.DoModal()== IDOK)
	{
		
		if ( nMaxPathBuffer )
		{
			//选择多个文件时获得其文件名
			POSITION posStart=openFileDlg.GetStartPosition();
			while ( posStart )
			{
				// 路径名在这里依次获得
				CString filePathName = openFileDlg.GetNextPathName(posStart);
				
			}
		}
		
	}

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧