Может кто-нибудь сообщить мне, что я здесь не так делаю?
Проект 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
Второй путь неверен!