社区
C++ 语言
帖子详情
CFileDialog保存多个文件
liqianfu0214
2009-04-13 05:16:36
先用CFileDialog打开对话框,多选几个文件点击打开,然后怎么把这几个文件保存到我指定的文件夹里,希望哪位大侠给我个代码,谢谢!还有为什么这样运行MoveFile(E:\music.mp3,E:\home)会报错呢?
...全文
259
13
打赏
收藏
CFileDialog保存多个文件
先用CFileDialog打开对话框,多选几个文件点击打开,然后怎么把这几个文件保存到我指定的文件夹里,希望哪位大侠给我个代码,谢谢!还有为什么这样运行MoveFile(E:\music.mp3,E:\home)会报错呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fuqianli
2009-04-14
打赏
举报
回复
MoveFile(E:\music.mp3,E:\home\music.mp3)函数必须这样用,不然实现不了。
fairchild811
2009-04-13
打赏
举报
回复
movefile内e:\\m.mp3, e:\\m\n\m.mp3
jixingzhong
2009-04-13
打赏
举报
回复
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。
jixingzhong
2009-04-13
打赏
举报
回复
使用CFileDialog类并设置OFN_ALLOWMULTISELECT标志时,OPENFILENAME结构体的lpstrFile成员是一个指向用户申请分配的缓冲区,里面接受所选的路径和文件名列表,这个列表的每一项由一个NULL隔开,最末以两个NULL结束。nMaxFile成员指明了缓冲区的大小,如果所选择的文件名的加起来的总长度超过了此值,则DoModal函数返回IDCANCEL,如果用户试图打开超过缓冲区大小的文件集的话,CommDlgExtendedError()将返回FNERR_BUFFERTOOSMALL,这时候,lpstrFile的前两个byte将会包含实际需要的缓冲区的字节数。
如果是在Windows NT 4.0下,能被拷贝到lpstrFile缓冲区的字节数被限制在2562字节以内,如果超过将被截断。
以下是一个使用该类进行多文件名选择的例子。
#include "cderr.h" //for definition of FNERR_BUFFERTOOSMALL
CFileDialog dlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, NULL, NULL);
DWORD MAXFILE = 4000
dlg.m_ofn.nMaxFile = MAXFILE;
char* pc = new char[MAXFILE];
dlg.m_ofn.lpstrFile = pc;
dlg.m_ofn.lpstrFile[0] = NULL;
int iReturn = dlg.DoModal();
if(iReturn == IDOK)
...{
int nCount = 0;
POSITION pos = dlg.GetStartPosition();
while (pos != NULL)
...{
dlg.GetNextPathName(pos);
nCount++;
}
CString str;
str.Format("Successfully opened %d files ", nCount);
AfxMessageBox(str);
}
else if(iReturn == IDCANCEL)
AfxMessageBox("Cancel");
if(CommDlgExtendedError() == FNERR_BUFFERTOOSMALL)
AfxMessageBox("BUFFERTOOSMALL");
delete []pc;
如果需要进一步的信息,可以参看:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cfiledialog.asp
xmrforever
2009-04-13
打赏
举报
回复
[Quote=引用 7 楼 liqianfu0214 的回复:]
各位就不能给出个像样点的答案来吗?我都说过了那种方法没有用,像这种方法我自己还不会吗?晕倒!
[/Quote]
注意态度
oyljerry
2009-04-13
打赏
举报
回复
[Quote=引用 7 楼 liqianfu0214 的回复:]
各位就不能给出个像样点的答案来吗?我都说过了那种方法没有用,像这种方法我自己还不会吗?晕倒!
[/Quote]
你说不能用,那你起码要检查首先是否正确读取出来,其次如果读出来了,那是写入文件不对?
liqianfu0214
2009-04-13
打赏
举报
回复
各位就不能给出个像样点的答案来吗?我都说过了那种方法没有用,像这种方法我自己还不会吗?晕倒!
tnswy
2009-04-13
打赏
举报
回复
_T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"),
这个是用来设置对话框里面能看到的文件类型,这里设置的是 txt,你可以根据自己的需要设置。
tnswy
2009-04-13
打赏
举报
回复
while(mPos!=NULL)
10 {
11 pathName=mFileDlg.GetNextPathName(mPos);
12 TRACE("%s\n",pathName);
// 在这里copy文件,
CopyFile(pathName,你的目标目录,true);
//或者move文件
MoveFile(pathName,你的目录,true);
13 }
tnswy
2009-04-13
打赏
举报
回复
// 首先创建一个 CFIleDialog 类实例,并设置多选标志
1 CFileDialog mFileDlg(TRUE, NULL,NULL,
2 OFN_ALLOWMULTISELECT,
3 _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"),
4 AfxGetMainWnd());
5 CString pathName;
6 If(mFileDlg.DoModal ()==IDOK)
7 {
8 POSITION mPos=mFileDlg.GetStartPosition();
9 while(mPos!=NULL)
10 {
11 pathName=mFileDlg.GetNextPathName(mPos);
12 TRACE("%s\n",pathName);
13 }
14 }
15 else
16 TRACE(“IDCANCLE\n”);
liqianfu0214
2009-04-13
打赏
举报
回复
这种方法我用过了,没有用,根本就不能把它们保存到我指定的文件夹里去。
oyljerry
2009-04-13
打赏
举报
回复
CFileDialog参数加上OFN_ALLOWMULTISELECT
用GetStartPosition()取得第一个文件的位置,如果没有多的文件,其返回值0;
用GetNextPathName(POSITION &pos)取得文件名,并指向下一个文件的POSITION。
如:
POSITION pos;
CString str;
pos=dlg.GetStartPosition();
while(!pos)
{
str=dlg.GetNextPathName(pos);
//...
//...
}
liqianfu0214
2009-04-13
打赏
举报
回复
没有兄弟帮帮忙吗 我实在是没有分了哦
C
File
DIalog
保存
多个
文件
本文详细介绍了MFC中的C
File
Dialog
类,包括如何构造
文件
选择对话框、设置参数、获取用户选择等。同时提供了使用示例代码,帮助开发者更好地理解和使用C
File
Dialog
。
C
File
Dialog
打开目录
文件
保存
目录
文件
本文详细介绍C
File
Dialog
类的构造函数及参数意义,通过
多个
实例演示如何使用C
File
Dialog
打开和
保存
文件
,包括设置
文件
过滤器、对话框标题等。
C
File
Dialog
打开目录
文件
保存
目录
文件
本文详细介绍了C
File
Dialog
类的构造函数及参数含义,展示了如何通过不同参数配置实现
文件
打开和
保存
对话框的功能。此外,还提供了
多个
代码示例,帮助读者更好地理解和使用C
File
Dialog
。
C
File
Dialog
打开
文件
夹
文件
保存
文件
夹
文件
本文详细介绍了如何使用 C
File
Dialog
控件来实现
文件
打开和
保存
的功能。包括构造函数参数说明、使用注意事项及
多个
示例代码,帮助读者更好地掌握 C
File
Dialog
的使用技巧。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章