69,373
社区成员
发帖
与我相关
我的任务
分享
AnsiString __fastcall TForm2::SelectFolder(AnsiString Caption)
{
BROWSEINFO bi; //控制Browse对话框上属性的结构体
LPITEMIDLIST ItemID;
char sDir[MAX_PATH]; //MAX_PATH:系统常量,指最大路径长度
char FolderName[MAX_PATH];
memset(&bi, 0, sizeof(BROWSEINFO)); //清零
memset(sDir, 0, MAX_PATH);
bi.hwndOwner = this->Handle;//Application->Handle; //父窗口句柄
bi.pszDisplayName = FolderName; //存放路径的缓冲区
bi.lpszTitle = Caption.c_str(); //对话框标题
bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE; //只显示文件系统文件夹
ItemID = SHBrowseForFolder(&bi);
if(ItemID==NULL)
return "";
SHGetPathFromIDList(ItemID, sDir);
GlobalFree(ItemID);
AnsiString PathName=String(sDir);
if(PathName.IsEmpty())
return "";
if(strcmp(PathName.AnsiLastChar(),"\\")!=0)
PathName+="\\"; //添加路径符
return PathName;
}