樹(shù)形目錄在PB中的實(shí)現(xiàn)與應(yīng)用

字號(hào):

1.引言
    在管理信息系統(tǒng)的開(kāi)發(fā)中,經(jīng)常需要獲取本地計(jì)算機(jī)中的樹(shù)形目錄結(jié)構(gòu)和相應(yīng)的文件信息,如進(jìn)行目錄的選擇和特殊文件的選取,在PowerBuilder(簡(jiǎn)稱PB)中并沒(méi)有提供專門(mén)的樹(shù)形目錄對(duì)象,這樣就需要程序開(kāi)發(fā)人員自己來(lái)實(shí)現(xiàn)相應(yīng)的樹(shù)形目錄。本文針對(duì)這種情況,提供了一種用純PB代碼實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)的方法。
    2.PB中樹(shù)形目錄的實(shí)現(xiàn)方法
    PB中實(shí)現(xiàn)樹(shù)形目錄可以利用Windows本身的API函數(shù)SHBrowseForFolderA(包括在shell32.dll文件中),但該API函數(shù)只能顯示相應(yīng)的樹(shù)形目錄,不能顯示文件信息,而且用戶對(duì)它不能進(jìn)行靈活的控制。因此,如果需要進(jìn)行靈活控制,就需要程序人員自己編寫(xiě)相應(yīng)代碼。
    PB中的ListBox列表框控件提供了顯示目錄和文件的能力。在程序中可以利用PB的樹(shù)形控件TreeView動(dòng)態(tài)生成樹(shù)形目錄結(jié)構(gòu)。我們使用ListBox控件的函數(shù)DirList來(lái)實(shí)現(xiàn),函數(shù)DirList以滿足條件的文件名填充列表框的列表項(xiàng),其使用方法如下:
    listboxname.DirList(文件模式,文件類(lèi)型)
    其中文件類(lèi)型的值如下所示:
    0 可讀/可寫(xiě)文件 2 隱含文件 16 子目錄 16384 驅(qū)動(dòng)器
    1 只讀文件 4 系統(tǒng)文件 32 歸檔文件 32768 除可讀/可寫(xiě)外所有類(lèi)型
    在程序中可將幾種類(lèi)型的值相加以獲取相應(yīng)的文件或目錄信息。下面結(jié)合一個(gè)實(shí)例介紹樹(shù)形目錄的實(shí)現(xiàn)方法,程序界面如圖1所示。
    圖1 樹(shù)形目錄實(shí)現(xiàn)的實(shí)例
    通過(guò)樹(shù)形目錄可以獲取計(jì)算機(jī)中的任意目錄,然后顯示需要顯示的文件(本例中顯示瀏覽器可以查看的文件類(lèi)型:htm,html,swf,gif,jpg,txt等)。程序中主要使用的控件如下所示:
    控件名 類(lèi)型 說(shuō)明
    tv_dir TreeView 顯示樹(shù)形目錄
    lb_file ListBox 顯示相應(yīng)目錄中的文件
    ole_disp Microsoft Web瀏覽器控件 對(duì)選定文件進(jìn)行瀏覽
    lb_dir ListBox 顯示驅(qū)動(dòng)器信息
    lb_next ListBox 顯示當(dāng)前目錄下級(jí)目錄信息