【发布时间】:2019-06-15 08:45:44
【问题描述】:
有人可以告诉我我在这里做错了什么吗?
MFC 项目,我使用CFileDialog 让用户选择多个文件,例如:
CFileDialog fd(TRUE, NULL, NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_EXPLORER | OFN_ALLOWMULTISELECT,
NULL, this);
if(fd.DoModal() == IDOK)
{
//Multi-selection
CString strPaths;
POSITION fileNamesPosition = fd.GetStartPosition();
while(fileNamesPosition != NULL)
{
if(!strPaths.IsEmpty())
strPaths += L"\n";
strPaths += fd.GetNextPathName(fileNamesPosition);
}
AfxMessageBox(strPaths);
}
所以如果说,有两个快捷方式文件:
shortcut_1.lnk 引用的文件:"D:\Folder\Project_B\Release\Name of Project B.exe"
和shortcut_2.lnk指的是"D:\Folder\Project_A\Release\Name of Project A.exe"
如果我从上面代码生成的“文件打开”对话框中选择它们,我得到的strPaths 变为以下,这是不正确的:
D:\Folder\Project_A\Release\Name of Project A.exe
D:\Folder\Project_A\Release\Name of Project B.exe
第二条路径错了!
【问题讨论】:
标签: c++ winapi mfc cfiledialog