vb文件系統(tǒng)控件的使用

字號(hào):

使用文件系統(tǒng)控件(Directory List Box、Drive List Box 和 File ListBox)
    許多應(yīng)用程序必須顯示關(guān)于磁盤驅(qū)動(dòng)器、目錄和文件的信息。為使用戶能夠利用文件系統(tǒng),Visual Basic 提供了兩種選擇??梢允褂糜?CommonDialog控件提供的標(biāo)準(zhǔn)對(duì)話框,或者使用 DirListBox、DriveListBox 和 FileListBox這三種特殊的控件的組合創(chuàng)建自定義對(duì)話。
    文件系統(tǒng)控件使用戶能在應(yīng)用程序中檢查可用的磁盤文件并從中選擇。若只需要標(biāo)準(zhǔn)的“打開文件”或“保存”對(duì)話框,則應(yīng)考慮使用 CommonDialog控件。
    詳細(xì)信息 請(qǐng)參閱本章前面的“使用 CommonDialog 控件”。
    示例應(yīng)用程序:Winseek.vbp
    許多代碼示例都來自 WinSeek 示例應(yīng)用程序(Winseek.vbp),該程序列在Samples目錄中。
    檢查文件系統(tǒng)
    每個(gè)文件系統(tǒng)控件都經(jīng)過精心設(shè)計(jì),將靈活、復(fù)雜的文件系統(tǒng)檢查功能與簡(jiǎn)易的編程方法結(jié)合起來。每個(gè)控件都自動(dòng)執(zhí)行文件數(shù)據(jù)獲取任務(wù),但也可編寫代碼自定義控件外觀并指定顯示的信息。
    可單獨(dú)使用文件系統(tǒng)控件,也可組合起來使用。組合使用時(shí),可在各控件的事件過程中編寫代碼來判斷它們之間的交互方式。也可讓它們獨(dú)立操作。
    文件系統(tǒng)控件自動(dòng)從操作系統(tǒng)獲取一切信息;可訪問此信息或判斷每個(gè)控件通過其屬性顯示的信息。例如,在缺省時(shí)顯示當(dāng)前工作目錄的內(nèi)容(即啟動(dòng)應(yīng)用程序的目錄,或者由 ChDir 語(yǔ)句改變的當(dāng)前目錄) 。
    應(yīng)用程序也可顯示文件列表,這些文件的名字匹配一種模式,例如 *.frm。只需在窗體上繪制一個(gè)文件列表,設(shè)置其 Pattern 屬性為 *.frm。運(yùn)行時(shí),可用下列代碼指定 Pattern 屬性:
    File1.Pattern = "*.FRM"
    文件系統(tǒng)控件使操作非常靈活,這是 CommonDialog 控件無法做到的。可以用多種方法混合、匹配它們,并可控制它們的外觀和交互方式。
    如果目的就是要讓用戶能夠打開和保存文件,則 CommonDialog 控件為這些操作提供了現(xiàn)成的一組對(duì)話框。這些對(duì)話框也為許多其它基于 MicrosoftWindows 的應(yīng)用程序所使用,因此具有標(biāo)準(zhǔn)化的外觀。這些控件也能識(shí)別可用的網(wǎng)絡(luò)驅(qū)動(dòng)器。
    詳細(xì)信息 請(qǐng)參閱本章前面的“使用 CommonDialog 控件”。
    驅(qū)動(dòng)器列表框
    驅(qū)動(dòng)器列表框是下拉式列表框。在缺省時(shí)在用戶系統(tǒng)上顯示當(dāng)前驅(qū)動(dòng)器。當(dāng)該控件獲得焦點(diǎn)時(shí),用戶可輸入任何有效的驅(qū)動(dòng)器標(biāo)識(shí)符,或者單擊驅(qū)動(dòng)器列表框右側(cè)的箭頭。用戶單擊箭頭時(shí)將列表框下拉以列舉所有的有效驅(qū)動(dòng)器。若用戶從中選定新驅(qū)動(dòng)器,則這個(gè)驅(qū)動(dòng)器將出現(xiàn)在列表框的頂端。可用代碼檢查 Drive 屬性來判斷當(dāng)前選擇的驅(qū)動(dòng)器。應(yīng)用程序也可通過下述簡(jiǎn)單賦值語(yǔ)句指定出現(xiàn)在列表框頂端的驅(qū)動(dòng)器:
    Drive1.Drive = "c:\"
    驅(qū)動(dòng)器列表框顯示可用的有效驅(qū)動(dòng)器。從列表框中選擇驅(qū)動(dòng)器并不能自動(dòng)地變更當(dāng)前的工作驅(qū)動(dòng)器;然而可用 Drive 屬性在操作系統(tǒng)級(jí)變更驅(qū)動(dòng)器,這只需將它作為 ChDrive 語(yǔ)句的參數(shù):
    ChDrive Drive1.Drive
    目錄列表框
    目錄列表框從層目錄開始顯示用戶系統(tǒng)上的當(dāng)前驅(qū)動(dòng)器目錄結(jié)構(gòu)。起初,當(dāng)前目錄名被突出顯示,而且當(dāng)前目錄和在目錄層次結(jié)構(gòu)中比它更高層的目錄一起向根目錄方向縮進(jìn)。在目錄列表框中當(dāng)前目錄下的子目錄也縮進(jìn)顯示。在列表中上下移動(dòng)時(shí)將依次突出顯示每個(gè)目錄項(xiàng)。
    標(biāo)識(shí)單個(gè)目錄
    列表框中的每個(gè)目錄關(guān)聯(lián)一個(gè)整型標(biāo)識(shí)符,可用它來標(biāo)識(shí)單個(gè)目錄。CommonDialog 控件沒有提供這個(gè)功能。Path 屬性 (Dir1.Path) 指定的目錄總是有 ListIndex 值-1。緊鄰其上的目錄具有 ListIndex 值- 2,再上一個(gè)為L(zhǎng)istIndex- 3,依次類推。Dir1.Path 的第一個(gè)子目錄具有 ListIndex 值 0。若第一級(jí)子目錄有多個(gè)目錄,則每個(gè)目錄的 ListIndex 值按 1、2、3……的順序依次排列。
    可用目錄列表框的 Path 屬性設(shè)置或返回列表框中的當(dāng)前目錄 (ListIndex = -1)。例如,若為圖 7.18 中的 Drive1.Path 賦以 "c:\payroll",則目錄 \Pagroll將成為當(dāng)前工作目錄。
    同樣,可把驅(qū)動(dòng)器列表框的 Drive 屬性賦予目錄列表框的 Path 屬性:
    Dir1.Path = Drive1.Drive
    執(zhí)行賦值語(yǔ)句時(shí),目錄列表框?qū)@示此驅(qū)動(dòng)器上所有有效的目錄和子目錄。缺省時(shí),目錄列表框?qū)@示驅(qū)動(dòng)器的當(dāng)前目錄的所有上級(jí)目錄以及下一級(jí)子目錄,而驅(qū)動(dòng)器是被指定給 Dir1.Path 屬性的。目錄列表框并不在操作系統(tǒng)級(jí)設(shè)置當(dāng)前目錄;它只是突出顯示目錄并將其 ListIndex 值設(shè)置為 -1。
    為設(shè)置當(dāng)前工作目錄應(yīng)使用 ChDir 語(yǔ)句。例如,下列語(yǔ)句將當(dāng)前目錄變成目錄列表框中顯示的一個(gè)目錄:
    ChDir Dir1.Path在使用文件控件的應(yīng)用程序中,可用 Application 對(duì)象將當(dāng)前目錄設(shè)置成應(yīng)用程序的可執(zhí)行 (.exe) 文件所在目錄:
    ChDrive App.Path   '設(shè)置驅(qū)動(dòng)器。
    ChDir App.Path    '設(shè)置目錄。
    注意 Path 屬性只在運(yùn)行時(shí)可用,在設(shè)計(jì)時(shí)不可用?! ?BR>    詳細(xì)信息 關(guān)于 Application 對(duì)象的詳細(xì)信息,請(qǐng)參閱《Visual Basic 6.0語(yǔ)言參考》中“App 對(duì)象”。