文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 一、如何选择文件夹?
- 二、使用步骤
- 1.浏览模式
- 2.选择模式
- 3.多选模式
- 三、完整代码
RAD C++ Builder 通过SelectDirectory函数实现。
二、使用步骤 1.浏览模式代码如下(示例):
void __fastcall TForm1::Button1Click(TObject *Sender)
{
UnicodeString uniSDir;
if (SelectDirectory(uniSDir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt, 0))//需要Vcl.FileCtrl.hpp文件定义支持
{
this->Edit1->Text = uniSDir;
}
}
效果图:
代码如下(示例):
void __fastcall TForm1::Button2Click(TObject *Sender)
{
UnicodeString uniSDir;
if(SelectDirectory(L"请选择文件夹的位置", L"", uniSDir, TSelectDirExtOpts() << TSelectDirExtOpt::sdNewUI << TSelectDirExtOpt::sdNewFolder << TSelectDirExtOpt::sdShowEdit, this))
{
this->Edit2->Text = uniSDir;
}
}
效果图:
代码如下(示例):
void __fastcall TForm1::Button3Click(TObject *Sender)
{
DynamicArray uniSDirectories;
if(SelectDirectory(L"", uniSDirectories, TSelectDirFileDlgOpts() << sdAllowMultiselect, L"请选择文件夹的位置", L"文件夹名字", L"选择文件夹"))
{
UnicodeString uniSDir = L"多选文件夹为:";
for(int i=0; i
uniSDir += L"rn" + uniSDirectories[i];
}
this->Memo1->Lines->Add(uniSDir);
}
}
效果图:
unit1.h:
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include#include #include #include #include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TPanel *Panel2; TButton *Button1; TButton *Button2; TButton *Button3; TEdit *Edit1; TEdit *Edit2; TMemo *Memo1; TLabel *Label1; void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall Button3Click(TObject *Sender); void __fastcall FormCreate(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
unit1.cpp:
//--------------------------------------------------------------------------- #include#pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { UnicodeString uniSDir; if (SelectDirectory(uniSDir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt, 0))//需要Vcl.FileCtrl.hpp文件定义支持 { this->Edit1->Text = uniSDir; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { UnicodeString uniSDir; if(SelectDirectory(L"请选择文件夹的位置", L"", uniSDir, TSelectDirExtOpts() << TSelectDirExtOpt::sdNewUI << TSelectDirExtOpt::sdNewFolder << TSelectDirExtOpt::sdShowEdit, this)) { this->Edit2->Text = uniSDir; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { DynamicArray uniSDirectories; if(SelectDirectory(L"", uniSDirectories, TSelectDirFileDlgOpts() << sdAllowMultiselect, L"请选择文件夹的位置", L"文件夹名字", L"选择文件夹")) { UnicodeString uniSDir = L"多选文件夹为:"; for(int i=0; i uniSDir += L"rn" + uniSDirectories[i]; } this->Memo1->Lines->Add(uniSDir); } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { this->Edit1->Clear();//清除文本框 this->Edit2->Clear(); this->Memo1->Clear(); } //---------------------------------------------------------------------------



