自從Visual Basic第一次發(fā)布到現(xiàn)在,它的大部分主要的特性大都被修改了不下一次。但文件操作部分卻是個(gè)例外。在最原始的BasiC語(yǔ)言中,文件就是用文件號(hào)(file number)來(lái)讀寫(xiě)的。用一個(gè)數(shù)字來(lái)操作文件,或許者多少有一點(diǎn)晦澀難懂,這也令大多數(shù)的初學(xué)者感到不習(xí)慣和難以理解。
隨著Visual Basic Scripting Edition2.0版本的發(fā)布,微軟提供了一種全新的文件操作方法——文件系統(tǒng)對(duì)象(FileSystemObject)。用對(duì)象編程,這正是開(kāi)發(fā)者們所希望用到。這個(gè)對(duì)象,包括一些其他的相關(guān)對(duì)象,封裝了所有的文件操作。這篇文章將向你介紹這些對(duì)象,并且展示如何利用它們來(lái)編程。要使用這些對(duì)象,在VB的應(yīng)用程序中就必須引用Microsoft Scripting Runtime (C:\Windows\System\SCRRUN.DLL)對(duì)象庫(kù)。但是如果是為Internet Explore 編寫(xiě)VBScript,直接使用就可以了。下面是這些對(duì)象的概要:
* Drive - 代表一個(gè)單獨(dú)的驅(qū)動(dòng)器,可以是軟驅(qū),硬盤(pán),或者是光驅(qū)等其他存貯介質(zhì)。
* Drives - 一個(gè)集合對(duì)象,包括系統(tǒng)中所有的驅(qū)動(dòng)器。
* File - 代表系統(tǒng)中的一個(gè)磁盤(pán)文件。
* Files - 集合對(duì)象,是一些文件的集合。典型的是代表一個(gè)目錄下的所有文件。
* FileSystemObject - 代表系統(tǒng)中整個(gè)文件系統(tǒng)的對(duì)象。包括所有驅(qū)動(dòng)器,目錄和文件。
* Folder - 代表一個(gè)目錄,可以是本地的,也可以是遠(yuǎn)程目錄。
* Folders - 一些目錄的集合體。
* TextStream - 文本流對(duì)象,代表一個(gè)用來(lái)讀寫(xiě)的打開(kāi)的文件。
想得到系統(tǒng)中所有的驅(qū)動(dòng)器的信息,可以用下面的這段代碼來(lái)實(shí)現(xiàn)。
Sub Main()
Dim objFSO As New Scripting.FileSystemObject
Dim drvLoop As Scripting.Drive
For Each drvLoop In objFSO.Drives
Debug.Print drvLoop.DriveLetter & ":\"
If drvLoop.DriveType = Fixed _
Or drvLoop.IsReady Then
Debug.Print " Total size: " _
& Format$(drvLoop.TotalSize / (1024 ^ 2), "#0.00 Mb")
Debug.Print " Free space: " _
& Format$(drvLoop.FreeSpace / (1024 ^ 2), "#0.00 Mb")
Debug.Print " Volume Label: " & drvLoop.VolumeName
Else
Debug.Print " Disk information unavailable"
End If
Next drvLoop
Set objFSO = Nothing
End Sub
在試圖存取像軟盤(pán),光盤(pán)這些可移動(dòng)介質(zhì)驅(qū)動(dòng)器,特別是存取筆記本電腦的可交換驅(qū)動(dòng)器的時(shí)候要注意:Windows總是認(rèn)為驅(qū)動(dòng)器是存在的,而不管是否真的有盤(pán)片在里面。這時(shí)候可以用Drive對(duì)象IsReady對(duì)象來(lái)檢測(cè)驅(qū)動(dòng)器是否準(zhǔn)備好。否則可能造成VB應(yīng)用程序的死鎖。
隨著Visual Basic Scripting Edition2.0版本的發(fā)布,微軟提供了一種全新的文件操作方法——文件系統(tǒng)對(duì)象(FileSystemObject)。用對(duì)象編程,這正是開(kāi)發(fā)者們所希望用到。這個(gè)對(duì)象,包括一些其他的相關(guān)對(duì)象,封裝了所有的文件操作。這篇文章將向你介紹這些對(duì)象,并且展示如何利用它們來(lái)編程。要使用這些對(duì)象,在VB的應(yīng)用程序中就必須引用Microsoft Scripting Runtime (C:\Windows\System\SCRRUN.DLL)對(duì)象庫(kù)。但是如果是為Internet Explore 編寫(xiě)VBScript,直接使用就可以了。下面是這些對(duì)象的概要:
* Drive - 代表一個(gè)單獨(dú)的驅(qū)動(dòng)器,可以是軟驅(qū),硬盤(pán),或者是光驅(qū)等其他存貯介質(zhì)。
* Drives - 一個(gè)集合對(duì)象,包括系統(tǒng)中所有的驅(qū)動(dòng)器。
* File - 代表系統(tǒng)中的一個(gè)磁盤(pán)文件。
* Files - 集合對(duì)象,是一些文件的集合。典型的是代表一個(gè)目錄下的所有文件。
* FileSystemObject - 代表系統(tǒng)中整個(gè)文件系統(tǒng)的對(duì)象。包括所有驅(qū)動(dòng)器,目錄和文件。
* Folder - 代表一個(gè)目錄,可以是本地的,也可以是遠(yuǎn)程目錄。
* Folders - 一些目錄的集合體。
* TextStream - 文本流對(duì)象,代表一個(gè)用來(lái)讀寫(xiě)的打開(kāi)的文件。
想得到系統(tǒng)中所有的驅(qū)動(dòng)器的信息,可以用下面的這段代碼來(lái)實(shí)現(xiàn)。
Sub Main()
Dim objFSO As New Scripting.FileSystemObject
Dim drvLoop As Scripting.Drive
For Each drvLoop In objFSO.Drives
Debug.Print drvLoop.DriveLetter & ":\"
If drvLoop.DriveType = Fixed _
Or drvLoop.IsReady Then
Debug.Print " Total size: " _
& Format$(drvLoop.TotalSize / (1024 ^ 2), "#0.00 Mb")
Debug.Print " Free space: " _
& Format$(drvLoop.FreeSpace / (1024 ^ 2), "#0.00 Mb")
Debug.Print " Volume Label: " & drvLoop.VolumeName
Else
Debug.Print " Disk information unavailable"
End If
Next drvLoop
Set objFSO = Nothing
End Sub
在試圖存取像軟盤(pán),光盤(pán)這些可移動(dòng)介質(zhì)驅(qū)動(dòng)器,特別是存取筆記本電腦的可交換驅(qū)動(dòng)器的時(shí)候要注意:Windows總是認(rèn)為驅(qū)動(dòng)器是存在的,而不管是否真的有盤(pán)片在里面。這時(shí)候可以用Drive對(duì)象IsReady對(duì)象來(lái)檢測(cè)驅(qū)動(dòng)器是否準(zhǔn)備好。否則可能造成VB應(yīng)用程序的死鎖。