国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

利用C++Builder遍歷文件目錄

2019-09-06 23:34:02
字體:
來源:轉載
供稿:網友

                        利用C++Builder我們可以輕松地實現類似Windows的Explorer的目錄樹。OK,Let's go.
  我們需要一個TTree和一個TImageList控件。如何獲得系統的盤符呢?Borland給我們提供了一個TDriveType類,什么?幫助里找不到,呵呵,這是實現TDirectoryComboBox用到的一個類,幫助里當然沒有了,它的定義如下:
typedef enum ATTR { atDirectory,atFile} Attr;
struct ITEMPROPERTY
{
Attr ItemAttr;
}ItemProperty;
typedef enum TDRIVETYPE {dtUnknown, dtNoDrive, dtFloppy, dtFixed, dtNetwork, dtCDROM,dtRAM}TDriveType;
   那么如何知道這些盤符是軟驅是硬盤呢?這就需要用到WinAPI函數GetDriveType了。定義如下:
UINT GetDriveType(LPCTSTR lpRootPathName); 具體內容請大家參考幫助文檔,我就不在這兒耽誤大家時間了。最后我們利用BCB的FindFirst,FindNext等函數就可以實現對目錄的遍歷了。
   下面的兩個函數InitDriectoryTree用來獲得盤符和它們的屬性,BrowseDriectory采用遞歸法實現對目錄的遍歷,具體實現如下:
bool __fastcall TForm1::InitDirectoryTree()
{
DriveCount=GetAllDrive();
DriveType=new TDriveType[4];
for(int i=DriveCount;i>0;i--)
{
TTreeNode* Node=DirTree->Items->Item;
DriveType=TDriveType(GetDriveType(Node->Text.c_str()));
switch(DriveType)
{
case dtFloppy: //軟驅
case dtFixed: BrowseDirectory(Node->Text,Node);break;//硬盤
case dtNetwork: BrowseDirectory(Node->Text,Node);break;//網絡驅動器
case dtCDROM: //光驅
case dtRAM: BrowseDirectory(Node->Text,Node);break; //內存虛擬盤?不大明白,可能像Win98啟動盤生成的那個E:盤一樣
};


}
return true;
//TODO: Add your source code here
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BrowseDirectory(AnsiString Dir, TTreeNode* Node)
{
TSearchRec sr;
TTreeNode* SubNode=Node;
if(FindFirst(Dir+"*.*",faDirectory,sr)==0)
while(1)
{ if(sr.Attr==faDirectory&&sr.Name!="."&&sr.Name!="..")
{
SubNode=DirTree->Items->AddChild(Node,sr.Name);
BrowseDirectory(Dir+sr.Name+"/",SubNode);
}
if(FindNext(sr)!=0) break;
}
FindClose(sr);
return;
//TODO: Add your source code here
}
//---------------------------------------------------------------------------
   以上我們利用C++Builder實現了對計算機文件系統的訪問,實際上我們可以利用上面的函數創建一個可以訪問文件系統的VCL控件來代替BCB提供的TDirectoryListbox和TDirectoryComboBox,使你的程序更具有Win9X的風格。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇阳县| 湖州市| 通江县| 余江县| 金秀| 墨竹工卡县| 贵南县| 沽源县| 玉门市| 梅州市| 辰溪县| 布尔津县| 孝感市| 康乐县| 佛教| 德惠市| 濮阳市| 榕江县| 甘肃省| 阿瓦提县| 乌海市| 光泽县| 阜宁县| 大丰市| 抚松县| 朝阳区| 内丘县| 尼玛县| 时尚| 清徐县| 茶陵县| 旬邑县| 屏南县| 高陵县| 山丹县| 炉霍县| 揭阳市| 绥棱县| 秦皇岛市| 深水埗区| 深州市|