13,870
社区成员




#define NO_WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料
#include <shlobj.h>
#include <vcl.h>
void __fastcall TForm2::Button3Click(TObject *Sender)
{
AnsiString Dir = SelectFolder("请选择数据包文件目录:");
if(!Dir.IsEmpty())Edit2->Text = Dir;
}
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;
}
//--------------------------------------------------------------
#include <FileCtrl.hpp>
#pragma link "C:\\Program Files\\Borland\\CBuilder6\\Lib\\vclx.lib"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String strDir = "";
if (SelectDirectory("请选择文件", L"", strDir))
ShowMessage(strDir);
else
ShowMessage("没有选择文件");
}
//默认打开F盘3860目录
OpenDialog1->InitialDir ="F:\\3860\\" ;
OpenDialog1->Execute();