在計(jì)算系統(tǒng)中,文件管理一直是一個(gè)非常重要的概念。所謂的文件是指存放在外部存儲(chǔ)介質(zhì)上的數(shù)據(jù)和程序等。
在windows中編程時(shí),下述這些功能是非常重要的:添加、移動(dòng)、修改、創(chuàng)建、刪除文件夾(目錄)和文件,以及獲得驅(qū)動(dòng)器的信息和操作驅(qū)動(dòng)器。
VB允許用下述兩種不同的方法來操作驅(qū)動(dòng)器、文件夾和文件。傳統(tǒng)的方法是使用Open語句、Write#等,也可以用FileSystemObject(FSO)對象模型。從vb第一版直到如今,文件處理都是通過使用Open語句以及其它一些相關(guān)的語句和函數(shù)來實(shí)現(xiàn)并將逐步轉(zhuǎn)向使用FSO對象模型。如果設(shè)計(jì)應(yīng)用程序使用數(shù)據(jù)庫文件,則在應(yīng)用程序中不需要提供直接的文件訪問。Date控件與綁定控件都可以向數(shù)據(jù)庫讀寫數(shù)據(jù),這比直接使用文件訪問更容易。
下面介紹幾個(gè)常用的文件控件。
一、文件控件
在VB6.0中包括四個(gè)文件類型控件,它們分別是DriveListBox控件(驅(qū)動(dòng)器列表框)、DirListBox控件(目錄列表框)、FileListBox控件(文件列表框)和CommDialog控件,可以實(shí)現(xiàn)不同功能。
1、 DriveListBox控件
DriveListBox控件的功能是在程序的運(yùn)行過程中,為用戶提供一個(gè)選擇有效的磁盤驅(qū)動(dòng)器,該控件可以用來顯示用戶系統(tǒng)中所有有效磁盤驅(qū)動(dòng)器的列表。
DriveListBox控件及后面介紹的DirListBox控件、FileListBox控件有許多標(biāo)準(zhǔn)屬性,包括Enable、FontBold、FontItalic、FontName、FontSize、Height、Left、Name、Top、Visible、Width等等。此外,DriveListBox控件最重要的一個(gè)屬性就是Drive屬性,用來改變DriveListBox控件的缺省驅(qū)動(dòng)器,該Drive屬性只能在程序的代碼中設(shè)置,不能通過屬性窗口設(shè)置。其格式為:
驅(qū)動(dòng)器列表框名稱.Drive[=驅(qū)動(dòng)器名]
這里的“驅(qū)動(dòng)器名”是指定的驅(qū)動(dòng)器,如果省略,則指當(dāng)前驅(qū)動(dòng)器。如果所選擇的驅(qū)動(dòng)器在當(dāng)前系統(tǒng)中不存在,則產(chǎn)生錯(cuò)誤。
每次重新設(shè)置驅(qū)動(dòng)器列表框的Drive屬性時(shí),都將引發(fā)Change事件。
下面就是一個(gè)利用DriveListBox控件來進(jìn)行程序設(shè)計(jì)的示例。
(1)添加控件
首先在空白的窗體上放置一個(gè)DriveListBox控件。
(2)添加代碼
在窗體的Form_Load()事件中添加下列代碼:
Private Sub Form_load()
Drive1.Drive="e:\" '設(shè)置控件的缺省驅(qū)動(dòng)器為E。
End Sub
程序說明:Form_load()事件在程序運(yùn)行時(shí)就會(huì)被激活。然后就會(huì)通過Drive1.Drive="e:\"這條語句來設(shè)置控件的缺省驅(qū)動(dòng)器為E。
(3)存儲(chǔ)文件,運(yùn)行程序
由于在程序的Form_Load()事件中設(shè)置DriveListBox控件的缺省驅(qū)動(dòng)器為E盤,所以程序的開始界面中DriveListBox控件顯示的是E盤。
2、DirListBox 控件
DirListBox 控件的功能是在程序運(yùn)行過程中,顯示分層的列表。DirListBox 控件有幾個(gè)比較重要的屬性,如Path屬性、List屬性和ListCount屬性。
(1)Path屬性
Path屬性用于目錄列表框和文件列表框,用來設(shè)置或返回當(dāng)前驅(qū)動(dòng)器的路徑,屬性的值是一個(gè)指示路徑的字符串,例如"e:\user"或"c:\PWIN95\MEDIA"。其格式為:
[窗體.]目錄列表框│文件列表框.Path[="路徑"]
Path屬性也只能在程序的代碼中設(shè)置,不能通過屬性窗口設(shè)置。
一般在應(yīng)用程序的設(shè)計(jì)中,如果用到DirListBox 控件,則同時(shí)要用到DriveListBox控件與之相關(guān)聯(lián),如下:
添加一個(gè)DriveListBox控件,一個(gè)DirListBox 控件。
設(shè)置兩者同步(當(dāng)DriveListBox控件的改變驅(qū)動(dòng)器時(shí),DirListBox 控件中的內(nèi)容與之同步):
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '設(shè)置 DirListBox 控件的路徑與DriveListBox控件同步
End Sub
設(shè)置DriveListBox控件的缺省驅(qū)動(dòng)器,如為“C”盤:
Private Sub Form_load()
Drive1.Drive="c:\" '設(shè)置控件的缺省驅(qū)動(dòng)器為C。
End Sub
(2)List 屬性
list屬性的功能是返回或設(shè)置控件的列表部分的工程。
語法如下:
[窗體.]控件.list(index)[=string]
list屬性語法包含下面部分:
控件:可以是組合框、列表框、驅(qū)動(dòng)器列表框、目錄列表框、文件列表框等。
index:某種列表框中項(xiàng)目的下標(biāo)。
string:字符串表達(dá)式
對于DirListBox 控件,索引號(hào)序列(index)基于在運(yùn)行中創(chuàng)建該控件時(shí)的當(dāng)前目錄和子目錄。當(dāng)前展開的目錄用索引值-1表示,當(dāng)前展開目錄的上一級(jí)目錄用絕對值更大一些的負(fù)索引值來表示。如,-2是當(dāng)前展開的目錄的父目錄,-3又是它的上一級(jí)的目錄。當(dāng)前展開的目錄以下的目錄的范圍是從0到ListCount-1。
例:添加一個(gè) DriveListBox控件,一個(gè) DirListBox 控件,并設(shè)置如下代碼:
Private Sub Form_load()
Drive1.Drive="c:\" '設(shè)置控件的缺省驅(qū)動(dòng)器為C。
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '設(shè)置 DirListBox 控件的路徑與DriveListBox控件同步
End Sub
Private Sub Dir1_Change()
MsgBox Dir1.List(-2) '通過對話框顯示選中目錄的上一級(jí)目錄。
在windows中編程時(shí),下述這些功能是非常重要的:添加、移動(dòng)、修改、創(chuàng)建、刪除文件夾(目錄)和文件,以及獲得驅(qū)動(dòng)器的信息和操作驅(qū)動(dòng)器。
VB允許用下述兩種不同的方法來操作驅(qū)動(dòng)器、文件夾和文件。傳統(tǒng)的方法是使用Open語句、Write#等,也可以用FileSystemObject(FSO)對象模型。從vb第一版直到如今,文件處理都是通過使用Open語句以及其它一些相關(guān)的語句和函數(shù)來實(shí)現(xiàn)并將逐步轉(zhuǎn)向使用FSO對象模型。如果設(shè)計(jì)應(yīng)用程序使用數(shù)據(jù)庫文件,則在應(yīng)用程序中不需要提供直接的文件訪問。Date控件與綁定控件都可以向數(shù)據(jù)庫讀寫數(shù)據(jù),這比直接使用文件訪問更容易。
下面介紹幾個(gè)常用的文件控件。
一、文件控件
在VB6.0中包括四個(gè)文件類型控件,它們分別是DriveListBox控件(驅(qū)動(dòng)器列表框)、DirListBox控件(目錄列表框)、FileListBox控件(文件列表框)和CommDialog控件,可以實(shí)現(xiàn)不同功能。
1、 DriveListBox控件
DriveListBox控件的功能是在程序的運(yùn)行過程中,為用戶提供一個(gè)選擇有效的磁盤驅(qū)動(dòng)器,該控件可以用來顯示用戶系統(tǒng)中所有有效磁盤驅(qū)動(dòng)器的列表。
DriveListBox控件及后面介紹的DirListBox控件、FileListBox控件有許多標(biāo)準(zhǔn)屬性,包括Enable、FontBold、FontItalic、FontName、FontSize、Height、Left、Name、Top、Visible、Width等等。此外,DriveListBox控件最重要的一個(gè)屬性就是Drive屬性,用來改變DriveListBox控件的缺省驅(qū)動(dòng)器,該Drive屬性只能在程序的代碼中設(shè)置,不能通過屬性窗口設(shè)置。其格式為:
驅(qū)動(dòng)器列表框名稱.Drive[=驅(qū)動(dòng)器名]
這里的“驅(qū)動(dòng)器名”是指定的驅(qū)動(dòng)器,如果省略,則指當(dāng)前驅(qū)動(dòng)器。如果所選擇的驅(qū)動(dòng)器在當(dāng)前系統(tǒng)中不存在,則產(chǎn)生錯(cuò)誤。
每次重新設(shè)置驅(qū)動(dòng)器列表框的Drive屬性時(shí),都將引發(fā)Change事件。
下面就是一個(gè)利用DriveListBox控件來進(jìn)行程序設(shè)計(jì)的示例。
(1)添加控件
首先在空白的窗體上放置一個(gè)DriveListBox控件。
(2)添加代碼
在窗體的Form_Load()事件中添加下列代碼:
Private Sub Form_load()
Drive1.Drive="e:\" '設(shè)置控件的缺省驅(qū)動(dòng)器為E。
End Sub
程序說明:Form_load()事件在程序運(yùn)行時(shí)就會(huì)被激活。然后就會(huì)通過Drive1.Drive="e:\"這條語句來設(shè)置控件的缺省驅(qū)動(dòng)器為E。
(3)存儲(chǔ)文件,運(yùn)行程序
由于在程序的Form_Load()事件中設(shè)置DriveListBox控件的缺省驅(qū)動(dòng)器為E盤,所以程序的開始界面中DriveListBox控件顯示的是E盤。
2、DirListBox 控件
DirListBox 控件的功能是在程序運(yùn)行過程中,顯示分層的列表。DirListBox 控件有幾個(gè)比較重要的屬性,如Path屬性、List屬性和ListCount屬性。
(1)Path屬性
Path屬性用于目錄列表框和文件列表框,用來設(shè)置或返回當(dāng)前驅(qū)動(dòng)器的路徑,屬性的值是一個(gè)指示路徑的字符串,例如"e:\user"或"c:\PWIN95\MEDIA"。其格式為:
[窗體.]目錄列表框│文件列表框.Path[="路徑"]
Path屬性也只能在程序的代碼中設(shè)置,不能通過屬性窗口設(shè)置。
一般在應(yīng)用程序的設(shè)計(jì)中,如果用到DirListBox 控件,則同時(shí)要用到DriveListBox控件與之相關(guān)聯(lián),如下:
添加一個(gè)DriveListBox控件,一個(gè)DirListBox 控件。
設(shè)置兩者同步(當(dāng)DriveListBox控件的改變驅(qū)動(dòng)器時(shí),DirListBox 控件中的內(nèi)容與之同步):
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '設(shè)置 DirListBox 控件的路徑與DriveListBox控件同步
End Sub
設(shè)置DriveListBox控件的缺省驅(qū)動(dòng)器,如為“C”盤:
Private Sub Form_load()
Drive1.Drive="c:\" '設(shè)置控件的缺省驅(qū)動(dòng)器為C。
End Sub
(2)List 屬性
list屬性的功能是返回或設(shè)置控件的列表部分的工程。
語法如下:
[窗體.]控件.list(index)[=string]
list屬性語法包含下面部分:
控件:可以是組合框、列表框、驅(qū)動(dòng)器列表框、目錄列表框、文件列表框等。
index:某種列表框中項(xiàng)目的下標(biāo)。
string:字符串表達(dá)式
對于DirListBox 控件,索引號(hào)序列(index)基于在運(yùn)行中創(chuàng)建該控件時(shí)的當(dāng)前目錄和子目錄。當(dāng)前展開的目錄用索引值-1表示,當(dāng)前展開目錄的上一級(jí)目錄用絕對值更大一些的負(fù)索引值來表示。如,-2是當(dāng)前展開的目錄的父目錄,-3又是它的上一級(jí)的目錄。當(dāng)前展開的目錄以下的目錄的范圍是從0到ListCount-1。
例:添加一個(gè) DriveListBox控件,一個(gè) DirListBox 控件,并設(shè)置如下代碼:
Private Sub Form_load()
Drive1.Drive="c:\" '設(shè)置控件的缺省驅(qū)動(dòng)器為C。
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '設(shè)置 DirListBox 控件的路徑與DriveListBox控件同步
End Sub
Private Sub Dir1_Change()
MsgBox Dir1.List(-2) '通過對話框顯示選中目錄的上一級(jí)目錄。