我想用BCB的OpenDialog選中一個檔案夾,想對選中的檔案夾底下的檔案進行批處理操作
(注:之前是用OpenDialog直接一個個打開檔案進行操作的,后來發現,檔案按數量少還可以應付,檔案數量多就太繁了,所以想知道有沒有什么方法可以選中檔案夾而不是檔案)
uj5u.com熱心網友回復:
SelectDirectoryuj5u.com熱心網友回復:
SelectDirectory 函式,不是控制元件。有兩個多載函式,出來的界面不太一樣。要包含頭檔案。uj5u.com熱心網友回復:
大哥,能不能給我舉個例子
uj5u.com熱心網友回復:
查help看看。老的資料都是bcb6的。uj5u.com熱心網友回復:
#include <FileCtrl.hpp>void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Path;
AnsiString HaHa;
char *p;
if (SelectDirectory("請選擇目錄","",Path))
{
HaHa=Path;
ShowMessage(HaHa);
}
}
我一開始是新建一個羨慕,拖了一個按鈕,在按鈕里面輸入上面的代碼,沒有出現任何問題
但是我把它放在別的程式里(也是一個按鈕的動作),就會報出以下錯
[Linker Error] Unresolved external '__fastcall Filectrl::SelectDirectory(const System::AnsiString, const System::WideString, System::AnsiString&)' referenced from D:\1. BCB檔案\9. 格力_機床\A0_4_機床\UNIT1_NCTOJGF_1.OBJ
uj5u.com熱心網友回復:
這個問題我問過,你是BCB什么版本?uj5u.com熱心網友回復:

BCB6幫助檔案
uj5u.com熱心網友回復:
可以把vclx.lib靜態庫加入工程中:拷貝過來,Add to Project。如果是高版本RAD,也可以把頭檔案改為
#include <Vcl.FileCtrl.hpp>
即可。
uj5u.com熱心網友回復:
工程靜態編譯時會鏈接不到,可以把vclx.lib靜態庫加入工程中。
uj5u.com熱心網友回復:
#include <FileCtrl.hpp>把這句話加在 .h 檔案里。
uj5u.com熱心網友回復:

我試了下,編譯能過,但運行出現以上提示。
uj5u.com熱心網友回復:

除錯成功。
uj5u.com熱心網友回復:
你可以試一下函式的另一種多載形式(引數不同),出來的界面不一樣,我比較喜歡另一種。
uj5u.com熱心網友回復:
AnsiString Dir = "C:\\Program Files\\MyApp"; 把這句改成你默認的目錄名。你的方式:

也除錯成功。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/135660.html
標籤:基礎類
