樹形目錄在PB中的實現(xiàn)與應用

字號:

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