Estoy tratando de usar IFileDialog para seleccionar una carpeta y el siguiente código lo hace bien. El problema es que me gustaría ver ciertos tipos de archivos y carpetas mientras navego (como * .txt). ¿Hay una manera simple de hacer esto?Cómo usar IFileDialog con FOS_PICKFOLDER mientras todavía se muestran los nombres de los archivos en el cuadro de diálogo
//g_path is a global which will contain the selected folders path
void PickContainer()
{
IFileDialog *pfd;
if (SUCCEEDED(CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pfd))))
{
DWORD dwOptions;
if (SUCCEEDED(pfd->GetOptions(&dwOptions)))
{
pfd->SetOptions(dwOptions | FOS_PICKFOLDERS);
}
if (SUCCEEDED(pfd->Show(NULL)))
{
IShellItem *psi;
if (SUCCEEDED(pfd->GetResult(&psi)))
{
if(!SUCCEEDED(psi->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, &g_path)))
{
MessageBox(NULL, "GetIDListName() failed", NULL, NULL);
}
psi->Release();
}
}
pfd->Release();
}
}
No es realmente acerca de la organización de la aplicación mejor. Es que el diálogo estándar todavía no es el mejor para los usuarios (aunque es muchísimo mejor que la opción previa a la Vista). Me resulta confuso que parezca que todas mis carpetas están vacías mientras estoy navegando, incluso si mi objetivo final es una carpeta en lugar de un archivo. – Owen
En mi caso, estoy interesado en agregar una colección de archivos y carpetas a un archivo de archivo. La inhabilidad de seleccionar ambos desde un único diálogo estándar es molesto. Reorganizar la aplicación en torno a "puede agregar archivos o carpetas, pero no ambos" no tiene sentido. Creo que los diálogos personalizados son la única opción. – fadden
Estoy totalmente de acuerdo con fadden, no se trata de "organizar una aplicación mejor", hay casos de uso que simplemente requieren que el usuario pueda seleccionar tanto archivos como carpetas, y realmente es una pena que no haya un diálogo de Microsoft que los respalde. esta :( – Erik