CFileDialog :: Browse folders

You can't do it with CFileDialog.

Either you will use SHBrowseForFolder Function or a wrapper for it,
like CFolderDialog - Selecting Folders.


Starting from Vista it's recommended to use IFileDialog with the FOS_PICKFOLDERS option (see msdn):

CFileDialog od(TRUE/*bOpenFileDialog*/, NULL, NULL,
      OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , NULL, NULL, 0,
      TRUE/*bVistaStyle*/);
   IFileOpenDialog * openDlgPtr = od.GetIFileOpenDialog();
   if ( openDlgPtr != NULL )
   {
      openDlgPtr->SetOptions(FOS_PICKFOLDERS);
      openDlgPtr->Release();
   }

   od.DoModal();

It is very simple, really.

Use CFolderPickerDialog which is derived from the class CFileDialog!

Tags:

Visual C++

Mfc