VC怎么选中多个文件

VC怎么选中多个文件,第1张

建一个工程即可,在工程中有一个文件夹Source Files 是关键。在一个Source Files里可以有多个main()函数,不过在编译的时候只能留一个。当你需要运行程序时,你可以将其他main()函数从Source Files 删除(不用担心源文件删除,他们都还存在,只是在Source Files 看不见而已)只留下你要编译运行的main()函数及其所需要的源文件即可。如要编译其他main()函数,可将原先的删除,将所需的打开即可(首先选中Source Files ,鼠标右键->添加文件到目录->选择要打开的文件,即可打开)。

//同时打开N个文件

void COpenNFileDlg::OnButton1()

{

CString pathName,fileName,fileTitle

char* filters = _T("PCM文件(*.pcm)|*.pcm")

//创建一个可以选择多个文件的CFileDialog

CFileDialog fileDlg(true,NULL,"*.pcm",OFN_ALLOWMULTISELECT | OFN_ENABLESIZING | OFN_HIDEREADONLY,filters)

//最多可以打开500个文件

fileDlg.m_ofn.nMaxFile = 500 * MAX_PATH

char* ch = new TCHAR[fileDlg.m_ofn.nMaxFile]

fileDlg.m_ofn.lpstrFile = ch

//对内存块清零

ZeroMemory(fileDlg.m_ofn.lpstrFile,sizeof(TCHAR) * fileDlg.m_ofn.nMaxFile)

//显示文件对话框,获得文件名集合

if(fileDlg.DoModal() == IDOK){

//获取第一个文件的位置

POSITION pos_file

pos_file = fileDlg.GetStartPosition()

//用CString数组存放文件的路径

CArray<CString, CString>ary_filename

//存放文件的标题

CArray<CString, CString>ary_fileTitle

//循环读出每个路径并存放在数组中

while(pos_file != NULL){

//将文件路径存放在数组中

pathName = fileDlg.GetNextPathName(pos_file)

ary_filename.Add(pathName)

//获取文件名

//从字符串的后面往前遍历,如果遇到'\'则结束遍历,'\'右边的字符串则为文件名

int length = pathName.GetLength()

for(int i = length -1i>0i--)

{

if('\' == pathName. GetAt(i))

{//判断当前字符是否是'\'

fileName = pathName.Right(length - i -1)

break//跳出循环

}

}//endfor

//获取文件名(不包含后缀)

//采用CString的Left(int count)截取CString中从左往右数的count个字符

//fileName.GetLength()-4中的4表示".dat"四个字符

fileTitle = fileName.Left(fileName.GetLength()-4)

//AfxMessageBox(fileTitle)

ary_fileTitle.Add(fileTitle)//将文件名(不包含后缀)添加到数组中

}

}

delete[] ch

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8138383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存