作者:我并没有你们想象P的坚强 | 来源:互联网 | 2023-08-29 17:56
一.使用CFileFind类代码如下:CFileFindfinder;BOOLbWorkingfinder.FindFile(C:\\Users\\Adminis
一.使用CFileFind类
代码如下:
CFileFind finder;BOOL bWorking = finder.FindFile("C:\\Users\\Administrator\\Desktop\\赛道\\*.jpg");int count=0;while (bWorking){bWorking = finder.FindNextFile();m_fileName=finder.GetFileName(); ((CListBox*)GetDlgItem(IDC_LIST2))->InsertString(0,m_fileName);count++;//MessageBox(m_fileName);}
这样可以把名称显示在一个下拉框里面,当然在FindFile()函数里面的文件路径,可以用其它方法拿到的。
例如CFile 函数中的GetFilePath();
二.直接利用CFileDialog中成员变量的一个结构体OPENFILENAME
if(dlg.DoModal()==IDOK){//把第一个文件名前的复制到szPath,即://如果只选了一个文件,就复制到最后一个'/'//如果选了多个文件,就复制到第一个NULL字符//lstrcpyn(szPath, szOpenFileNames, dlg.m_ofn.nFileOffset );lstrcpyn(szPath, dlg.m_ofn.lpstrFile, dlg.m_ofn.nFileOffset );//当只选了一个文件时,下面这个NULL字符是必需的.//这里不区别对待选了一个和多个文件的情况//szPath[ dlg.m_ofn.nFileOffset ] = '/0';nLen = lstrlen(szPath);if( szPath[nLen-1] != '//' ) //如果选了多个文件,则必须加上'//'{lstrcat(szPath, TEXT("//"));}p = dlg.m_ofn.lpstrFile+ dlg.m_ofn.nFileOffset; //把指针移到第一个文件ZeroMemory(szFileName, sizeof(szFileName));int count=-1;while( *p){ ((CListBox*)GetDlgItem(IDC_LIST2))->InsertString(count++,p);lstrcat(szFileName, szPath); //给文件名加上路径 lstrcat(szFileName, p); //加上文件名 p += lstrlen(p) +1; //移至下一个文件}}
此处要注意对结构体用到变量的初始化。