程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VB--FSO對象模型在VB中的應用

VB--FSO對象模型在VB中的應用

編輯:VB綜合教程
 

從 Visual Basic 的第一版至今,VB中有關文件的處理都是通過使用 Open 、Write以及其它一些相關的語句和

函數來實現的。
隨著軟件技術的不斷發展,加上面向對象編程概念的日臻成熟,這些文件操作語句已經不能適應軟件不斷增加

的復雜程度的需要了。因此,從VB6.0開始,微軟提出了一個全新的文件系統對象FSO。
一、簡介
文件系統對象FSO的英文全稱是File System Object ,這種對象模型提出了有別於傳統的文件操作語句處理文

件和文件夾的方法。通過采用object.method這種在面向對象編程中廣泛使用的語法,將一系列操作文件和文件

夾的動作通過調用對象本身的屬性直接實現。
FSO 對象模型不僅可以象使用傳統文件操作語句那樣實現文件的創建、改變、移動和刪除,而且可以檢測是否

存在指定的文件夾,如果存在,那麼,這個文件夾又位於磁盤上的什麼位置。更令人高興的是FSO 對象模型還

可以獲取關於文件和文件夾的信息,如名稱、創建日期或最近修改日期等以及當前系統中使用的驅動器的信息

,如驅動器的種類是CD-ROM還是可移動磁盤,當前磁盤的剩余空間還有多少。而以前要獲取這些信息必須通過

調用Windows API函數集中的相應函數才能實現。
FSO對象模型包含在Scripting 類型庫 (Scrrun.Dll)中,它同時包含了Drive、Folder、File、

FileSystemObject和TextStream五個對象。其中 Drive用來收集驅動器的信息,如可用磁盤空間或驅動器的類

型;Folder用於創建、刪除或移動文件夾,同時可以進行向系統查詢文件夾的路徑等操作; File的基本操作和

Folder基本相同,所不同的是Files的操作主要是針對磁盤上的文件進行的;FileSystemObject是FSO對象模型

中最主要對象,它提供了一套完整的可用於創建、刪除文件和文件夾,收集驅動器、文件夾、文件相關信息的

方法。需要注意的是,FSO對象模型提供的方法是冗余的,也就是說在實際使用中,FSO對象模型中包含的不同

對象的不同方法進行的卻是同樣的操作,而且FileSystemObject對象的方法直接作用於其余對象,所以在後面

的文章中並沒有單獨提到FileSystemObject對象,千萬不要以為沒有提到就不重要,事實上 FileSystemObject

對象在整個FSO對象模型中無處不在;最後的TextStream對象則是用來完成對文件的讀寫操作的。
在初步了解了FSO對象模型之後,下面我們通過實際的代碼對不同的對象進行進一步的闡述。
二、FSO對象模型的應用
(一)創建FSO對象模型
由於FSO對象包含在Scripting 類型庫 (Scrrun.Dll)中,所以在使用前首先需要在在工程中引用這個文件,單

擊“工程”,“引用”,然後在“引用”對話框中選中“Microsoft Scripting Runtime”前的復選框,然後單

擊“確定”。
要創建FSO對象可以采用兩種方法,一種是將一個變量聲明為FSO對象類型:Dim fsoTest As New

FileSystemObject;另一種是通過CreateObject方法創建一個FSO 對象:Set fsoTest = CreateObject

(“Scripting.FileSystemObject")。在實際使用中具體采用哪種聲明方法,可根據個人的使用習慣而定。
完成了FSO對象模型的創建之後,就可以利用創建的對象模型的方法訪問下屬各個對象的屬性來獲取所需信息或

進行相關操作了,具體的方法在下面結合各個對象分別講述。
(二)Drive對象
上面已經提到Drive對象是用來獲取當前系統中各個驅動器的信息的。由於Drive對象沒有方法,其應用都是通

過屬性表現出來的,所以我們必須熟悉Drive對象的屬性:
AvailableSpace:返回在指定的驅動器或網絡共享上的用戶可用的空間容量。
DriveLetter :返回某個指定本地驅動器或網絡驅動器的字母,這個屬性是只讀的。
DriveType:返回指定驅動器的磁盤類型。
FileSystem: 返回指定驅動器使用的文件系統類型。
FreeSpace:返回指定驅動器上或共享驅動器可用的磁盤空間,這個屬性是只讀的。
IsReady:確定指定的驅動器是否准備好。
Path :返回指定文件、文件夾、或驅動器的路徑。
RootFolder :返回一個 Folder 對象,該對象表示一個指定驅動器的根文件夾。只讀屬性。
SerialNumber:返回用於唯一標識磁盤卷標的十進制序列號。
ShareName:返回指定驅動器的網絡共享名
TotalSize :以字節為單位,返回驅動器或網絡共享的總空間大小。
VolumeName :設置或返回指定驅動器的卷標名。
從上面的屬性可以看到Drive對象基本上包含了日常操作所需的全部的驅動器信息,因此在使用中是非常方便的

。下面通過一個實例講述Drive對象的使用。首先在VB中建立一個工程,然後添加一個命令按鈕,將其Caption

設置為“TestDrive”,然後在click事件中加入以下代碼:
Dim fsoTest As New FileSystemObject
Dim drv1 As Drive, sReturn As String
Set drv1 = fsoTest.GetDrive(“C:\")
sReturn = “Drive " & “C:\" & vbCrLf
sReturn = sReturn & “VolumeName" & drv1.VolumeName & vbCrLf
sReturn = sReturn & “Total Space: " & FormatNumber(drv1.TotalSize / 1024, 0)
sReturn = sReturn & “Kb" & vbCrLf
sReturn = sReturn & “Free Space: " & FormatNumber(drv1.FreeSpace / 1024, 0)
sReturn = sReturn &“Kb" & vbCrLf
sReturn = sReturn &“FileSystem:" & drv1.FileSystem & vbCrLf
MsgBox sReturn
其中GetDrive方法返回一個與指定路徑中的驅動器相對應的 Drive 對象。該方法的語法格式為

object.GetDrive drivespec,object是一個FSO對象的名稱,drivespec用於指定驅動器的名稱。
按F5運行上述代碼,按下TestDrive按鈕就會彈出一個消息框顯示C盤的信息。
(三)Folder對象
在FSO 對象模型中,提供了豐富的有關文件夾操作的方法,這些方法分別是:  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved