打开文件的应用 我的一个程序要处理好多文件,是一个一个处理的,我想用文件对话框指定被处理文件,一次选择多个文件让我的那个程序逐个处理,这么写呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用CFileDialog,设定OFN_ALLOWMULTISELECT属性就可以多选了。 void CLiuJunqingDlg::OnRAWfile() { // TODO: Add your control notification handler code here CFileDialog dlg(TRUE); if(dlg.DoModal()==IDOK) FilePathName=dlg.GetFileTitle();}我就会这么获得文件名 ,但是选多个文件怎么付给变量呢? CFileDialog dlg(TRUE); if(dlg.DoModal()==IDOK) FileName=dlg.GetFileTitle();woxin(642610271) 18:04:04比如文件名是 a.txt,经过上面运行后是不产生这个结果 FileName="a.txt" CString filepath;CFileDialog Filedlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT| OFN_ALLOWMULTISELECT|OFN_EXPLORER, "Data Files (*.bak;*.txt)|*.bak;*.txt|All files(*.*)|*.*||", NULL);TCHAR *pBuffer = new TCHAR[MAX_PATH * 100];//最多允许100个文件 Filedlg.m_ofn.lpstrFile = pBuffer; Filedlg.m_ofn.nMaxFile = 100*MAX_PATH; Filedlg.m_ofn.lStructSize = 88;if(IDOK == Filedlg.DoModal()){ POSITION pos = Filedlg.GetStartPosition(); while(pos != NULL) { filepath = Filedlg.GetNextPathName(pos); // do sth..... } } 5楼写的很清楚了,在// do sth 的地方使用 shellExecute()把文件名和处理文件的程序传进去 void CLiuJunqingDlg::OnRAWfile() { // TODO: Add your control notification handler code here CFileDialog dlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER); TCHAR *pBuffer=new TCHAR[MAX_PATH*100];//最多允许100个文件 dlg.m_ofn.lpstrFile=pBuffer; dlg.m_ofn.nMaxFile=100*MAX_PATH; dlg.m_ofn.lStructSize=88; if(dlg.DoModal()==IDOK) { POSITION pos=dlg.GetStartPosition(); FileName=dlg.GetFileTitle(pos); } //FileName=dlg.GetFileTitle();}void CLiuJunqingDlg::OnGo() { if(recdex==2&&binfiledex==3) { comline=myprogram+kg+" "+"top"+kg+"tps"+kg+FileName+"."+tps+">"+FileName+"; system(comline); } else { CFile acbsfile(_T("C:\\w.txt"),CFile::modeReadWrite|CFile::modeCreate); acbsfile.Write(FileName,10); }各位高手这是我参照5楼写的,我的目的是打开文件获得好的文件名在void CLiuJunqingDlg::OnGo() 中逐个执行. filepath = Filedlg.GetNextPathName(pos); 编译错误 D:\Program Files\Microsoft Visual Studio\MyProjects\LiuJunqing\LiuJunqingDlg.cpp(253) : error C2660: 'GetFileTitle' : function does not take 1 parameters GetFileTitle这个应该是没有参数的,你传参数啦? CFileDialog dlg(TRUE); if(dlg.DoModal()==IDOK) FileName=dlg.GetFileTitle(); woxin(642610271) 18:04:04 比如文件名是 a.txt,经过上面运行后是不产生这个结果 FileName="a.txt" 变量的定义 CTIME使用的问题 怎样把主菜单的ID传进显示的对话框中 #include "stdafx.h" 谁有《VISUAL C++MFC编程实例》和《VISUAL C++MFC扩展编程实例》的源码给发一个吧!先谢谢了! 寻求http代理的代码 高手请指点 怎样把一个对话框中嵌入另一个对话框中 用VC怎样朗读中文??谢谢!! 难道程序就不能再继续下去吗????? 麻烦推荐点Socket编程简单的书 矢量高手!解析EMF文件,得到其中的矢量图元信息
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE);
if(dlg.DoModal()==IDOK) FilePathName=dlg.GetFileTitle();
}
我就会这么获得文件名 ,但是选多个文件怎么付给变量呢?
if(dlg.DoModal()==IDOK) FileName=dlg.GetFileTitle();
woxin(642610271) 18:04:04
比如文件名是 a.txt,经过上面运行后是不产生这个结果 FileName="a.txt"
CString filepath;
CFileDialog Filedlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|
OFN_ALLOWMULTISELECT|OFN_EXPLORER,
"Data Files (*.bak;*.txt)|*.bak;*.txt|All files(*.*)|*.*||", NULL);
TCHAR *pBuffer = new TCHAR[MAX_PATH * 100];//最多允许100个文件
Filedlg.m_ofn.lpstrFile = pBuffer;
Filedlg.m_ofn.nMaxFile = 100*MAX_PATH;
Filedlg.m_ofn.lStructSize = 88;
if(IDOK == Filedlg.DoModal())
{
POSITION pos = Filedlg.GetStartPosition();
while(pos != NULL)
{
filepath = Filedlg.GetNextPathName(pos);
// do sth.....
}
}
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER);
TCHAR *pBuffer=new TCHAR[MAX_PATH*100];//最多允许100个文件
dlg.m_ofn.lpstrFile=pBuffer;
dlg.m_ofn.nMaxFile=100*MAX_PATH;
dlg.m_ofn.lStructSize=88;
if(dlg.DoModal()==IDOK)
{
POSITION pos=dlg.GetStartPosition();
FileName=dlg.GetFileTitle(pos);
}
//FileName=dlg.GetFileTitle();
}void CLiuJunqingDlg::OnGo()
{
if(recdex==2&&binfiledex==3)
{
comline=myprogram+kg+" "+"top"+kg+"tps"+kg+FileName+"."+tps+">"+FileName+";
system(comline);
}
else
{
CFile acbsfile(_T("C:\\w.txt"),CFile::modeReadWrite|CFile::modeCreate);
acbsfile.Write(FileName,10);
}各位高手这是我参照5楼写的,我的目的是打开文件获得好的文件名在void CLiuJunqingDlg::OnGo() 中逐个执行.
D:\Program Files\Microsoft Visual Studio\MyProjects\LiuJunqing\LiuJunqingDlg.cpp(253) : error C2660: 'GetFileTitle' : function does not take 1 parameters
if(dlg.DoModal()==IDOK) FileName=dlg.GetFileTitle();
woxin(642610271) 18:04:04
比如文件名是 a.txt,经过上面运行后是不产生这个结果 FileName="a.txt"