Диалог выбора файла/папки в консольном приложении

code: #c
 
#include <stdlib.h>
#include <shlobj.h>
#include <stdio.h>
 
BOOL SelectFile(char * sPath, const char * szTitle)
{
        BOOL bRet = FALSE;
        LPCITEMIDLIST lpItemDList;
        BROWSEINFO bi = {
                NULL, 
                NULL, 
                sPath,
            szTitle,
                BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
                NULL,
                NULL,
                0
        };
        if((lpItemDList=SHBrowseForFolder(&bi)))
        {
                if((bRet = SHGetPathFromIDList(lpItemDList, sPath)))
                        GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
                else
                        sPath[0] = '\0';
        }
        return bRet;
}
 
int main()
{
        char sPath[256] = {0};
        if(!SelectFile(sPath, "Выберите файл или каталог"))
                printf("Error open path %s\n",strerror(GetLastError()));
        else
                printf("Selected path %s\n",sPath);
        system("pause");
        return 0;
}
 

автор: -=ЮрА=-

Поделиться:

Похожие статьи: