本人要做一个ftp上传文件,需要同时上传多个文件。
本人开始做的是单个文件上传,思路是:点击上传按钮,弹出对话框,选中本地路径的一个文件,就可以得到这个文件一个路径,通过调用函数(其中一个参数是选中的文件的本地路径,另外一个参数是ftp路径是固定的)就可以把这个文件上传了。
可是多个文件上传该怎么做呢?肯定不能通过对话框选中多个文件吧 ?假如通过对话框选中多个文件,那怎么得到这多个文件的路径呢?最大的问题就是怎么样选中多个文件以及得到这多个文件的本地路径,本人实在不知道怎么办了。
好困惑啊,拜托大家帮帮本人吧,本人只有35分了,全部给你们吧,能提供个思路也行,最好提供源代码,谢谢你们了。
本人开始做的是单个文件上传,思路是:点击上传按钮,弹出对话框,选中本地路径的一个文件,就可以得到这个文件一个路径,通过调用函数(其中一个参数是选中的文件的本地路径,另外一个参数是ftp路径是固定的)就可以把这个文件上传了。
可是多个文件上传该怎么做呢?肯定不能通过对话框选中多个文件吧 ?假如通过对话框选中多个文件,那怎么得到这多个文件的路径呢?最大的问题就是怎么样选中多个文件以及得到这多个文件的本地路径,本人实在不知道怎么办了。
好困惑啊,拜托大家帮帮本人吧,本人只有35分了,全部给你们吧,能提供个思路也行,最好提供源代码,谢谢你们了。
解决方案
5
依稀记得可以使用文件对话框多选,可能需设置选项,查看一下msdn吧
30
本人用的部分代码:
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); } } }