使用文件系統控件(DirectoryListBox、DriveListBox和FileListBox)
許多應用程序必須顯示關於磁盤驅動器、目錄和文件的信息。為使用戶能夠利用文件系統,VisualBasic提供了兩種選擇。可以使用由CommonDialog控件提供的標准對話框,或者使用DirListBox、DriveListBox和FileListBox這三種特殊的控件的組合創建自定義對話。
文件系統控件使用戶能在應用程序中檢查可用的磁盤文件並從中選擇。若只需要標准的“打開文件”或“保存”對話框,則應考慮使用CommonDialog控件。
詳細信息請參閱本章前面的“使用CommonDialog控件”。
示例應用程序:Winseek.vbp
許多代碼示例都來自WinSeek示例應用程序(Winseek.vbp),該程序列在Samples目錄中。
檢查文件系統
每個文件系統控件都經過精心設計,將靈活、復雜的文件系統檢查功能與簡易的編程方法結合起來。每個控件都自動執行文件數據獲取任務,但也可編寫代碼自定義控件外觀並指定顯示的信息。
可單獨使用文件系統控件,也可組合起來使用。組合使用時,可在各控件的事件過程中編寫代碼來判斷它們之間的交互方式。也可讓它們獨立操作。圖7.17顯示了一起使用的三個控件。
文件系統控件自動從操作系統獲取一切信息;可訪問此信息或判斷每個控件通過其屬性顯示的信息。例如,在缺省時顯示當前工作目錄的內容(即啟動應用程序的目錄,或者由ChDir語句改變的當前目錄)。
應用程序也可顯示文件列表,這些文件的名字匹配一種模式,例如*.frm。只需在窗體上繪制一個文件列表,設置其Pattern屬性為*.frm。運行時,可用下列代碼指定Pattern屬性:
File1.Pattern="*.FRM"
文件系統控件使操作非常靈活,這是CommonDialog控件無法做到的。可以用多種方法混合、匹配它們,並可控制它們的外觀和交互方式。
如果目的就是要讓用戶能夠打開和保存文件,則CommonDialog控件為這些操作提供了現成的一組對話框。這些對話框也為許多其它基於MicrosoftWindows的應用程序所使用,因此具有標准化的外觀。這些控件也能識別可用的網絡驅動器。
詳細信息請參閱本章前面的“使用CommonDialog控件”。
驅動器列表框
驅動器列表框是下拉式列表框。在缺省時在用戶系統上顯示當前驅動器。當該控件獲得焦點時,用戶可輸入任何有效的驅動器標識符,或者單擊驅動器列表框右側的箭頭。用戶單擊箭頭時將列表框下拉以列舉所有的有效驅動器。若用戶從中選定新驅動器,則這個驅動器將出現在列表框的頂端。可用代碼檢查Drive屬性來判斷當前選擇的驅動器。應用程序也可通過下述簡單賦值語句指定出現在列表框頂端的驅動器:
Drive1.Drive="c:"
驅動器列表框顯示可用的有效驅動器。從列表框中選擇驅動器並不能自動地變更當前的工作驅動器;然而可用Drive屬性在操作系統級變更驅動器,這只需將它作為ChDrive語句的參數:
ChDriveDrive1.Drive
目錄列表框
目錄列表框從最高層目錄開始顯示用戶系統上的當前驅動器目錄結構。起初,當前目錄名被突出顯示,而且當前目錄和在目錄層次結構中比它更高層的目錄一起向根目錄方向縮進。在目錄列表框中當前目錄下的子目錄也縮進顯示。在列表中上下移動時將依次突出顯示每個目錄項。
標識單個目錄
列表框中的每個目錄關聯一個整型標識符,可用它來標識單個目錄。CommonDialog控件沒有提供這個功能。Path屬性(Dir1.Path)指定的目錄總是有ListIndex值-1。緊鄰其上的目錄具有ListIndex值-2,再上一個為ListIndex-3,依次類推。Dir1.Path的第一個子目錄具有ListIndex值0。如圖7.18所示,若第一級子目錄有多個目錄,則每個目錄的ListIndex值按1、2、3……的順序依次排列。