婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > VBS中FileSystemObject對(duì)象詳解(完整版)

VBS中FileSystemObject對(duì)象詳解(完整版)

熱門(mén)標(biāo)簽:東營(yíng)快遞外呼系統(tǒng) 除了地圖標(biāo)注還有這種生意嗎 地圖標(biāo)注政府哪個(gè)部門(mén)管 齊齊哈爾高德地圖標(biāo)注店 如何用機(jī)器人進(jìn)行電銷(xiāo) 佛山真人電銷(xiāo)機(jī)器人廠家 哪里有便宜的地圖標(biāo)注公司 神行者美術(shù)館地圖標(biāo)注 百度地圖標(biāo)注點(diǎn)距離代碼

FSO是FileSystemObject 或 Scripting.FileSystemObject 的縮寫(xiě),為 IIS 內(nèi)置組件,用于操作磁盤(pán)、文件夾或文本文件。FSO 的對(duì)象、方法和屬性非常的多,這里用示例的方式列出常用的,注意:《VBScript 語(yǔ)言參考》或《JScript 語(yǔ)言參考》中的:《FileSystemObject 用戶指南》和《Scripting 運(yùn)行時(shí)庫(kù)參考》便是微軟給出的 FileSystemObject 完整參考。

FSO 不能操作二進(jìn)制文件,要操作二進(jìn)制文件,使用:ADODB.Stream。
下面是轉(zhuǎn)摘的關(guān)于FileSystemObject的詳細(xì)介紹,TextStream是其中的一個(gè)子對(duì)象。

前言

最近一直在學(xué)VBScript,網(wǎng)上相關(guān)的教程也有很多,但大多數(shù)的對(duì)象都放在ASP中講解,對(duì)于沒(méi)有學(xué)過(guò)ASP的同學(xué)來(lái)說(shuō)就非常郁悶了。所以打算把在學(xué)習(xí)FileSystemObject及TextStream中所常用的屬性和方法寫(xiě)出來(lái)供大家來(lái)學(xué)習(xí),如有不妥的地方請(qǐng)予以指出。

備注:所有的腳本均在QTP 9.0中測(cè)試過(guò)。

FileSystemObject對(duì)象概述

FileSystemObject 對(duì)象的作用:提供對(duì)計(jì)算機(jī)文件系統(tǒng)的訪問(wèn),它允許我們?cè)诖a內(nèi)操作文本文件、文件夾及驅(qū)動(dòng)器。FileSystemObject 對(duì)象提供一個(gè)屬性和一系列方法,可用它們來(lái)操縱 FileSystemObject 對(duì)象實(shí)現(xiàn)的一些從屬對(duì)象。這里提供了全部的內(nèi)容概要,然后介紹每一個(gè)從屬對(duì)象。

一、FileSystemObject 對(duì)象的屬性

FileSystemObject 對(duì)象只有一個(gè)屬性,它用于得到當(dāng)前機(jī)器上的所有有效驅(qū)動(dòng)器的列表,如表1所示:

表1 FileSystemObject 對(duì)象的屬性和說(shuō)明

屬性

說(shuō)明

Drivers

返回本地計(jì)算機(jī)可用的驅(qū)動(dòng)器列表

'如下腳本就可以獲得FileSystemObject的Drivers屬性
Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set colDrivers = objFSO.Drivers

正如已經(jīng)看到的,F(xiàn)ileSystemObject 對(duì)象包含一個(gè)屬性——Drives,它返回一個(gè)包括本地計(jì)算機(jī)上所有可用驅(qū)動(dòng)器的集合。

Drives 集合里的每個(gè)條目是一個(gè) Drive 對(duì)象。Drive 對(duì)象的屬性如表2所示:

表2 Drive 對(duì)象的屬性及說(shuō)明

方法

說(shuō)明

AvailableSpave

考慮了帳戶定額和/或其他限制,返回驅(qū)動(dòng)器上對(duì)于該用戶可用的空間的大小

DriveLetter

返回驅(qū)動(dòng)器的字母

DriveType

返回驅(qū)動(dòng)器的類型。返回值可以是 Unknown(0)、Removeable(1)、Fixed(2)、Network(3)、CDRom(4) 和 RamDisk(5)。然而需要注意的是當(dāng)前版本的 scrrun.dll 不支持預(yù)定義常數(shù) Network,必須使用十進(jìn)制 3 來(lái)代替

FileSystem

返回驅(qū)動(dòng)器文件系統(tǒng)的類型。返回值包括“FAT”、“NTFS”和“CDFS”

FreeSpace

返回驅(qū)動(dòng)器上可用剩余空間的總量

IsReady

返回一個(gè)布爾值表明驅(qū)動(dòng)器是否已準(zhǔn)備好

Path

返回一個(gè)由驅(qū)動(dòng)器字母和冒號(hào)組成的驅(qū)動(dòng)器路徑,即“C:”

RootFolder

返回代表的驅(qū)動(dòng)器根目錄文件夾的 Folder 對(duì)象

SerialNumber

返回一個(gè)用于識(shí)別磁盤(pán)卷的十進(jìn)制的序列號(hào)

ShareName

如果是一個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器,返回該驅(qū)動(dòng)器的網(wǎng)絡(luò)共享名

TotalSize

返回驅(qū)動(dòng)器的總?cè)萘浚ㄒ宰止?jié)為單位)

VolumeName

設(shè)定或返回本地驅(qū)動(dòng)器卷名

因此,通過(guò)使用 Drives 集合里的 Drive 對(duì)象,可以在服務(wù)器上產(chǎn)生一個(gè)驅(qū)動(dòng)器列表,與通過(guò)檢查每個(gè)可能的驅(qū)動(dòng)器字母來(lái)判別驅(qū)動(dòng)器是否存在的方法相比,效率更高。我們也可以得到關(guān)于該驅(qū)動(dòng)器的信息。

示例:

' 創(chuàng)建FileSystemObject對(duì)象
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 創(chuàng)建Drives集合,并賦值給colDrives
Set colDrives = objFSO.Drives
' 遍歷Drives集合
For Each objDrive in colDrives
'判斷驅(qū)動(dòng)器是否已準(zhǔn)備好
If objDrive.IsReady Then
msg = "驅(qū)動(dòng)器的名稱為:"  objDrive.DriveLetter  " "
msg =msg  "驅(qū)動(dòng)器文件系統(tǒng)的類型:"  objDrive.FileSystem " "
msg = msg  "驅(qū)動(dòng)器的總?cè)萘浚?  int(objDrive.TotalSize/(1024*1024*1024))  "G "
msg = msg  "剩余空間的總量:"  int(objDrive.FreeSpace/(1024*1024*1024))  "G "
End If
Next
reporter.ReportEvent micDone ,"遍歷Drives集合",msg

備注:在系統(tǒng)上運(yùn)行這段程序以前有一點(diǎn)要注意。如果在 A 驅(qū)動(dòng)器里沒(méi)有磁盤(pán),或 CD-ROM 驅(qū)動(dòng)器里沒(méi)有光盤(pán),將得到一個(gè)錯(cuò)誤提示:“Disk Not Ready”。除了 DriveLetter 屬性和 DriveType 屬性外,在使用其他屬性和方法前,通過(guò)檢查每個(gè)驅(qū)動(dòng)器的 IsReady 屬性,可以保護(hù)該頁(yè)面。

二、FileSystemObject 對(duì)象的方法

1. 與驅(qū)動(dòng)器有關(guān)的方法

表3 與驅(qū)動(dòng)器有關(guān)的方法及說(shuō)明

方法

說(shuō)明

DriveExists(drivespec)

如果在 drivespec 中指定的驅(qū)動(dòng)器存在,則返回 True,否則返回 False。drivespec 參數(shù)可以是一個(gè)驅(qū)動(dòng)器字母,或者是文件、文件夾的完整絕對(duì)路徑

GetDrive(drivespec)

返回 drivespec 指定的驅(qū)動(dòng)器所對(duì)應(yīng)的Drive對(duì)象。drivespec 可以包含冒號(hào)、路徑分隔符或者是網(wǎng)絡(luò)共享名,即:“C”、“C:”、“C:”及“/machinesharename”

GetDriveName(drivespec)

用字符串返回 drivespec 指定的驅(qū)動(dòng)器的名稱。drivespec 參數(shù)必須是文件或文件夾的絕對(duì)路徑,或者僅僅是驅(qū)動(dòng)器字母,例如:“c:”或“c”

 DriveExists的使用

方法名:DriveExists(drivespec)

說(shuō)明:如果在 drivespec 中指定的驅(qū)動(dòng)器存在,則返回 True,否則返回 False。drivespec 參數(shù)可以是一個(gè)驅(qū)動(dòng)器字母,或者是文件、文件夾的完整絕對(duì)路徑

示例:

' 創(chuàng)建FileSystemObject對(duì)象

Set objFSO = CreateObject ("Scripting.FileSystemObject")
For intCode = 65 To 90 'ANSI codes for 'A' to 'Z'
strLetter = Chr(intCode) 'Chr:返回與指定的 ANSI 字符代碼相對(duì)應(yīng)的字符。
If objFSO.DriveExists(strLetter) Then '判斷相應(yīng)的盤(pán)符是否存在,如存在輸出
Reporter.ReportEvent micDone,"Show Drive”,” Found drive "  strLetter
End If
Next

另外,如果已知要訪問(wèn)的驅(qū)動(dòng)器、文件夾或文件。可以直接對(duì)其使用 GetDrive、GetFolder、GetSpecialFolder 和 GetFile 方法。

2. 與文件夾有關(guān)的方法及屬性

用FileSystemObject對(duì)象來(lái)操作文件夾的方法:

表4 與文件夾有關(guān)的方法及說(shuō)明

方法

說(shuō)明

BuildPath(path,name)

在已有的路徑 path 上增添名字為 name 的文件或文件夾,如果需要,則增添路徑分隔符' '

CopyFolder(source,destination,overwrite)

從指定的源文件夾 source(可以包含通配符)中復(fù)制一個(gè)或多個(gè)文件夾到指定的目標(biāo)文件夾 destination,包含了源文件夾中的所有文件。如果 source 包含通配符或 destination 末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是要放置源文件夾的拷貝的文件夾。否則的話,認(rèn)為 destination 是要?jiǎng)?chuàng)建的新文件夾的路徑名。如果 destination 文件夾已經(jīng)存在且 overwrite 參數(shù)設(shè)置為 False,將產(chǎn)生錯(cuò)誤,缺省的 overwrite 參數(shù)是True

CreateFolder(foldername)

創(chuàng)建一個(gè)路徑名為 foldername 的文件夾。如果 foldername 已經(jīng)存在將產(chǎn)生錯(cuò)誤

DeleteFolder(folderspec,force)

刪除由 folderspec 指定的一個(gè)或多個(gè)文件夾(可以在路徑的最后部分包含通過(guò)配符)及文件夾中的所有內(nèi)容。如果可選的 force 參數(shù)設(shè)置為 true,那么即使文件夾包含的文件具有只讀屬性,也將刪除該文件夾。缺省的 force 參數(shù)是 False

FolderExists(folderspec)

如果 folderspec 指定的文件夾存在則返回 True,否則返回 False。folderspec 參數(shù)可以包含文件夾的絕對(duì)或相對(duì)路徑,或者僅僅是當(dāng)前文件夾中看到的文件夾名

GetAbsolutePathName(pathspec)

返回明確指定文件夾的路徑,其中要考慮到當(dāng)前文件夾的路徑。例如,如果當(dāng)前文件夾是“c:docssales”,而pathspec是“jan”,返回的字符是“c:docssalesjan”。通配符、”..”和”/”路徑操作符都是可以接受的

GetFolder(folderspec)

返回 folderspec 指定的文件夾對(duì)應(yīng)的 Folder 對(duì)象。folderspec 可以是文件夾的相對(duì)的或絕對(duì)的路徑

GetParentFolderName(pathspec)

返回pathspec 文件或文件夾的上一級(jí)文件夾。不檢驗(yàn)該文件夾是否存在

GetSpecialfolder(folderspec)

返回一個(gè)特定的 Windows 文件夾相對(duì)應(yīng)的 Folder 對(duì)象。參數(shù) folderspec 的允許值是WindowsFolder(0)、SystemFolder(1) 和 TemporaryFolder(2)

MoveFolder(source,destination)

將 source 指定的一個(gè)或多個(gè)文件夾移動(dòng)到 destination 指定的文件夾。在 source 里可以包含通配符,但在 destination 中不行。如果 source 包含通配符或 destination 末尾是路徑分隔符(‘'),則認(rèn)為 destination 是要放置源文件夾的文件夾,否則認(rèn)為它是一個(gè)新文件夾的完整路徑和名字。如果目的文件夾 destination 已經(jīng)存在則產(chǎn)生錯(cuò)誤

CopyFolder的使用

方法名:CopyFolder(source,destination,overwrite)
說(shuō)明:將文件夾從某位置遞歸復(fù)制到另一位置。詳細(xì)說(shuō)明請(qǐng)查看表4。

示例:

' 創(chuàng)建FileSystemObject對(duì)象
Set objfso = createobject("scripting.FileSystemObject")
' 將D:/test下所有的內(nèi)容復(fù)制到c:/123
objfso.CopyFolder "D:/test","c:/123"

注:如果c:/123不存在,則QTP將自動(dòng)創(chuàng)建它

CreateFolder及DeleteFolder的使用

方法名:CreateFolder(foldername)/DeleteFolder(folderspec,force)
說(shuō)明:創(chuàng)建/刪除一個(gè)路徑名為 foldername 的文件夾。詳細(xì)說(shuō)明請(qǐng)查看表4。
示例:

' 創(chuàng)建FileSystemObject對(duì)象
Set objfso = createobject("scripting.FileSystemObject")
‘ 在c:/創(chuàng)建new folder文件夾,如果文件夾存在,則會(huì)出現(xiàn)錯(cuò)誤提示
objfso.CreateFolder("c:/new folder")
‘ 刪除c:/new folder文件夾
objfso.DeleteFolder("c:/new folder")

注:DeleteFolder無(wú)論文件夾是否包含內(nèi)容,都將刪除該文件夾

FolderExists的使用

方法名:FolderExist(folderspec)
說(shuō)明:如果指定的文件夾存在,則返回 True;否則返回 False。詳細(xì)說(shuō)明請(qǐng)查看表4。
示例:

Function hanshu(strpath)
       Dim objfso,objset
       ‘ 創(chuàng)建FileSystemObjec對(duì)象
       Set objfso = CreateObject("Scripting.FileSystemObject")
       ‘ 判斷在指定的路徑中是否有
       If Not objfso.FolderExists(strpath) Then
               objset = objfso.CreateFolder(strpath)
       else
               objset = objfso.DeleteFolder(strpath)
       End If
       hanshu = objset
End Function
 
hanshu("c:/new folder")

GetAbsolutePathName的使用

方法名:GetAbsolutePathName(pathspec)
說(shuō)明:從提供的指定路徑中返回完整且含義明確的路徑。詳細(xì)說(shuō)明請(qǐng)查看表4。
示例:

Dim objfso
‘創(chuàng)建FileSystemObject對(duì)象
Set objfso = createobject("Scripting.FileSystemObject")
‘返回當(dāng)前的目錄,下面兩條語(yǔ)句返回一樣的結(jié)果
msgbox (objfso.GetAbsolutePathName(""))
msgbox (objfso.GetAbsolutePathName("C:"))

GetFolder的使用

方法名:GetFolder(folderspec)
說(shuō)明:返回與指定的路徑中某文件夾相應(yīng)的 Folder 對(duì)象。可以根據(jù)所返回的Folder 對(duì)象,再去訪問(wèn)該Folder 對(duì)象所持有的屬性。
示例:

Dim objfso,objset
'創(chuàng)建FileSystemObject對(duì)象
Set objfso = createobject("Scripting.FileSystemObject")
'返回C:/testing的Folder的對(duì)象
Set objset = objfso.GetFolder("C:/testing")
' 根據(jù)所返回的Folder對(duì)象,去訪問(wèn)其相關(guān)的屬性
reporter.ReportEvent micDone ,"Folder對(duì)象的相關(guān)屬性","文件夾創(chuàng)建的日期:" objset.DateCreated "; 文件夾所在的驅(qū)動(dòng):" objset.Drive "; 文件夾的名字:" objset.Name

注:關(guān)于Folder對(duì)象的屬性,將在下面會(huì)詳細(xì)介紹

GetParentFolderName的使用

方法名:GetParentFolderName(pathspec)
說(shuō)明:返回字符串,該字符串包含指定的路徑中最后一個(gè)文件或文件夾的父文件夾。
示例:

Dim objfso
'創(chuàng)建FileSystemObject對(duì)象
Set objfso = createobject("Scripting.filesystemobject")
'使用GetParentFolderName方法來(lái)返回上一層文件夾
msgbox (objfso.GetParentFolderName("C:/WINDOWS/addins"))

GetSpecialFolder的使用

方法名:GetSpecialFolder(folderspec)
說(shuō)明:返回指定的特殊文件夾。詳細(xì)說(shuō)明請(qǐng)查看表4。
示例:

Dim fso,tempName
Set fso = CreateObject("Scripting.FileSystemObject")
'GetSpecialFolder()中的參數(shù)2,返回一個(gè)名為T(mén)emp的臨時(shí)文件夾
Set tempName = fso.GetSpecialFolder(2)
msgbox tempName

MoveFolder的使用

方法名:MoveFolder(source,destination)
說(shuō)明:將一個(gè)或多個(gè)文件夾從某位置移動(dòng)到另一位置。詳細(xì)說(shuō)明請(qǐng)查看表4。
示例:

Dim sourcepath,destination
sourcepath = "C:/testing"
destination = "C:/123"
'調(diào)用MoveFolders方法
call MoveFolders(sourcepath,destination)
 
Sub MoveFolders(sourcepath,destination)
   Dim fso
       '創(chuàng)建FileSystemObject對(duì)象
   Set fso = CreateObject("Scripting.FileSystemObject")
       '使用MoveFolder方法,將testing文件夾的內(nèi)容移動(dòng)到123文件夾下
   fso.MoveFolder sourcepath,destination
End Sub

注:如果腳本在運(yùn)行前文件夾123已存在,則運(yùn)行是會(huì)發(fā)生錯(cuò)誤;在不同的磁盤(pán)下MoveFolder方法不能用
       上面提到的Folder方法是基于FileSystemObject 對(duì)象的,現(xiàn)在我們來(lái)看看基于Folder對(duì)象的方法。

Folder對(duì)象所提供的方法

Folder 對(duì)象提供一組可用于復(fù)制、刪除和移動(dòng)當(dāng)前文件夾的方法。這些方法的運(yùn)行方式與 FileSystemObject 對(duì)象的CopyFolder、DeleFolder 和 MoveFolder 方法相同,但這些方法不要求 source 參數(shù),因?yàn)樵次募褪沁@個(gè)文件夾。
備注:CopyFolder、DeleFolder等方法是基于FileSystemObject 對(duì)象的;而下面的Copy、Delete等方法是基于FileSystemObject對(duì)象下的Folder對(duì)象,他們實(shí)現(xiàn)的功能是類似的。

 

表5 Folder 對(duì)象的方法及說(shuō)明

方法

說(shuō)明

Copy(destination,overwrite)

將這個(gè)文件夾及所有的內(nèi)容復(fù)制到 destination 指定的文件夾。如果 destination 的末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是放置拷貝文件夾的一個(gè)文件夾。否則認(rèn)為 destination 是要?jiǎng)?chuàng)建的新文件夾的路徑和名字。如果目標(biāo)文件夾已經(jīng)存在且 overwrite 參數(shù)設(shè)置為 False,將產(chǎn)生錯(cuò)誤,缺省的 overwrite 參數(shù)是 True

Delete(force)

刪除文件夾及里面的所有內(nèi)容。如果可選的 force 參數(shù)設(shè)置為 True,即使文件夾設(shè)置為只讀或含有只讀的文件,也將刪除該文件夾。缺省的 force 是 False

Move(destination)

將文件夾及里面所有的內(nèi)容移動(dòng)到 destination 指定的文件夾。如果 destination 的末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是放置移動(dòng)文件夾的一個(gè)文件夾。否則認(rèn)為 destination 是一個(gè)新的文件夾的路徑和名字。如果目標(biāo)文件夾已經(jīng)存在,則出錯(cuò)

CreateTextFile(filename,overwrite,unicode)

用指定的文件名在文件夾內(nèi)創(chuàng)建一個(gè)新的文件,并且返回一個(gè)相應(yīng)的TextStream 對(duì)象。如果可選的 overwrite參數(shù)設(shè)置為T(mén)rue,將覆蓋任何已有的同名文件。缺省的overwrite 參數(shù)是 False。如果可選的 unicode 參數(shù)設(shè)置為 True,文件的內(nèi)容將存儲(chǔ)為 unicode 文本。缺省的 unicode 是 False

 Copy的使用

方法名:Copy(destination,overwrite)
說(shuō)明:將文件夾的所有內(nèi)容,復(fù)制到destination文件夾中。詳細(xì)說(shuō)明請(qǐng)見(jiàn)表5
示例:

Dim sourcepath
sourcepath = "C:/testing"
Call FolderAttributes(sourcepath)

Sub FolderAttributes(sourcepath)
Dim fso,objset
Set fso = CreateObject("Scripting.FileSystemObject")
'使用GetFolder方法來(lái)返回Folder對(duì)象
Set objset = fso.getFolder(sourcepath)
'將testing中的所有內(nèi)容復(fù)制到123文件夾中
objset.Copy("d:/123")
End Sub

備注:如果目標(biāo)文件夾不存在,則腳本在運(yùn)行是將自動(dòng)創(chuàng)建

Delete的使用

方法名:Delete(force)
說(shuō)明:刪除文件夾及里面的所有內(nèi)容。詳細(xì)說(shuō)明請(qǐng)見(jiàn)表5
示例:

Dim sourcepath
sourcepath = "C:/testing"
Call FolderAttributes(sourcepath)

Sub FolderAttributes(sourcepath)
Dim fso,objset
Set fso = CreateObject("Scripting.FileSystemObject")
'使用GetFolder方法來(lái)返回Folder對(duì)象
Set objset = fso.getFolder(sourcepath)
'將testingw文件夾及文件夾里所有的內(nèi)容全部刪除
objset.Delete(True)
End Sub

備注:如果文件夾屬性為只讀且Delete的參數(shù)為False,則腳本在運(yùn)行是將提示“沒(méi)有權(quán)限”;當(dāng)文件夾不存在時(shí),將提示“路徑未找到”。

Move的使用

方法名:Move(destination)
說(shuō)明:將文件夾及里面所有的內(nèi)容移動(dòng)到 destination 指定的文件夾。詳細(xì)說(shuō)明請(qǐng)見(jiàn)表5
示例:

Dim sourcepath
sourcepath = "C:/testing"
Call FolderAttributes(sourcepath)

Sub FolderAttributes(sourcepath)
Dim fso,objset
Set fso = CreateObject("Scripting.FileSystemObject")
'使用GetFolder方法來(lái)返回Folder對(duì)象
Set objset = fso.getFolder(sourcepath)
'使用Move()將testing文件夾及里面所有的內(nèi)容,移動(dòng)到目標(biāo)文件夾123中
objset.Move("C:/123")
End Sub

備注:如果目標(biāo)文件夾123已存在,則腳本運(yùn)行時(shí)提示“文件已存在”;如果目標(biāo)文件夾123在D:/,則腳本運(yùn)行使提示“沒(méi)有權(quán)限”

CreateTextFile的使用

方法名:CreateTextFile(filename,overwrite,unicode)
說(shuō)明:創(chuàng)建指定文件并返回 TextStream 對(duì)象,該對(duì)象可用于讀或?qū)憚?chuàng)建的文件。詳細(xì)說(shuō)明請(qǐng)見(jiàn)表5。
示例:

Dim sourcepath
sourcepath = "C:/testing"
Call FolderAttributes(sourcepath)

Sub FolderAttributes(sourcepath)
Dim fso,objset
Set fso = CreateObject("Scripting.FileSystemObject")
'使用GetFolder方法來(lái)返回Folder對(duì)象
Set objset = fso.getFolder(sourcepath)
'在testing文件夾下,使用CreateTextFile()創(chuàng)建myClass2.doc文件
objset.CreateTextFile "myClass2.doc",true
End Sub

備注:CreateTextFile()所創(chuàng)建的文件類型是根據(jù)所提供的擴(kuò)展名來(lái)確定的,如也可以寫(xiě)成myClass2.txt、myClass.exe等等;FileSystemObject對(duì)象也可以調(diào)用CreateTextFile(),我們可以將上面的代碼改寫(xiě)成:
fso.CreateTextFile “C:/testing/myClass.doc”,true

Folder對(duì)象所提供的屬性:

 

表6 Folder 對(duì)象的屬性及說(shuō)明

屬性

說(shuō)明

Attributes

返回文件夾的屬性。可以是下列值中的一個(gè)或其組合:Normal(0)、ReadOnly(1)、Hidden(2)、System(4)、Volume(名稱)(8)、Directory(文件夾)(16)、Archive(32)、Alias(64) 和 Compressed(128)。例如,一個(gè)隱藏的只讀文件,Attributes 的值為 3

DateCreated

返回該文件夾的創(chuàng)建日期和時(shí)間

DateLastAccessed

返回最后一次訪問(wèn)該文件夾的日期和時(shí)間

DateLastModified

返回最后一次修改該文件夾的日期和時(shí)間

Drive

返回該文件夾所在的驅(qū)動(dòng)器的驅(qū)動(dòng)器字母

Files

返回 Folder 對(duì)象包含的 Files 集合,表示該文件夾內(nèi)所有的文件

IsRootFolder

返回一個(gè)布爾值說(shuō)明該文件夾是否是當(dāng)前驅(qū)動(dòng)器的根文件夾

Name

設(shè)定或返回文件夾的名字

ParentFolder

返回該文件夾的父文件夾對(duì)應(yīng)的 Folder 對(duì)象

Path

返回文件夾的絕對(duì)路徑,使用相應(yīng)的長(zhǎng)文件名

ShortName

返回 DOS 風(fēng)格的 8.3 形式的文件夾名

ShortPath

返回 DOS 風(fēng)格的 8.3 形式的文件夾的絕對(duì)路徑

Size

返回包含在該文件夾里所有文件和子文件夾的大小

SubFolers

返回該文件夾內(nèi)包含的所有子文件夾對(duì)應(yīng)的 Folders 集合,包括隱藏文件夾和系統(tǒng)文件夾

Type

如果可能,返回一個(gè)文件夾的說(shuō)明字符串(例如,“Recycle Bin”)

 如上面提到的,我們可以使用下面的腳本來(lái)訪問(wèn)Folder對(duì)象

Dim objfso,objset
'創(chuàng)建FileSystemObject對(duì)象
Set objfso = createobject("Scripting.FileSystemObject")
'返回C:/testing的Folder的對(duì)象
Set objset = objfso.GetFolder("C:/testing")

注:通過(guò)Folder對(duì)象我們就可以訪問(wèn)其提供的方法及屬性
Drive、DateCreated、Name屬性的使用
示例:

Dim sourcepath
sourcepath = "C:/testing"
Call FolderAttributes(sourcepath)
 
Sub FolderAttributes(sourcepath)
   Dim fso,objset
       Set fso = CreateObject("Scripting.FileSystemObject")
       '使用GetFolder方法來(lái)返回Folder對(duì)象
       Set objset = fso.getFolder(sourcepath)
       '通過(guò)Folder對(duì)象來(lái)訪問(wèn)Folder屬性
       reporter.ReportEvent micDone ,"測(cè)試Folder屬性","文件夾所在的磁盤(pán)為:" objset.Drive " 文件夾所創(chuàng)建的日期:" objset.DateCreated " 文件夾的名字為:" objset.Name
End Sub

SubFolers屬性的使用

示例:

Dim sourcepath
sourcepath = "C:/Program Files/Common Files"
Call FolderAttributes(sourcepath)
 
Sub FolderAttributes(sourcepath)
   Dim fso,objset,objFolders,FolderName,i
   i = 0
       Set fso = CreateObject("Scripting.FileSystemObject")
       '使用GetFolder方法來(lái)返回Folder對(duì)象
       Set objset = fso.getFolder(sourcepath)
       'SubFolders屬性將返回所有子文件夾對(duì)應(yīng)的Folder集合
       Set objFolders = objset.SubFolders
       '遍歷Folder集合,統(tǒng)計(jì)出共有多少個(gè)文件夾,及相關(guān)文件夾的名字
       For Each objFolder in objFolders
              i = i +1
              'vbcr為換行符
              FolderName =  FolderName + objFolder.Name + vbcr
       Next
       msgbox ("共有" i "個(gè)文件夾,文件夾的名字為:" FolderName)
End Sub

Files屬性的使用

示例:

Dim objFso,objGetFolder,intCount,strFileName
intCount = 0
'創(chuàng)建FileSystemObject對(duì)象
Set objFso= CreateObject("Scripting.FileSystemObject")
'使用GetFolder()獲得文件夾對(duì)象
Set objGetFolder = objFso.GetFolder("C:/test")
'遍歷Files集合并顯示文件夾中所有的文件名
For Each strFile in objGetFolder.Files
       intCount = intCount + 1
       strFileName =strFileName   "第" intCount "個(gè)文件夾名為:" strFile.Name vbcr
Next
msgbox strFileName

3. 以文件有關(guān)的方法及屬性

用FileSystemObject對(duì)象來(lái)操作文件的方法:

 

表7 與文件有關(guān)的方法及說(shuō)明

方法

說(shuō)明

CopyFile(source,destination,overwrite)

將 source(可包含通配符)指定的一個(gè)或多個(gè)文件復(fù)制到指定的目標(biāo)文件夾 destination。如果 source 包含通配符或 destination 末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是文件夾。否則認(rèn)為 destination 為一新文件的完全路徑和名稱。如果目標(biāo)文件夾已經(jīng)存在且 overwrite 參數(shù)設(shè)置為 False,將產(chǎn)生錯(cuò)誤。缺省的 overwrite 參數(shù)是 True

CreateTextFile(filename,overwrite,unicode)

用指定的文件名 filename 在磁盤(pán)上創(chuàng)建一個(gè)新的文本文件,并返回與其對(duì)應(yīng)的 TextStream 對(duì)象,如果可選的 overwrite 參數(shù)設(shè)置為 True,則覆蓋同一路徑下已有的同名文件。缺省的 overwrite 參數(shù)是 False。如果可選的 unicode 參數(shù)設(shè)置為 True,則該文件的內(nèi)容將存儲(chǔ)為 Unicode 文本,缺省的 unicode 參數(shù)是 False

DeleFile(filespec,force)

刪除由 filespec 指定的一個(gè)或多個(gè)文件(可以在路徑的最后部分包含通配符)。如果可選的 force 參數(shù)設(shè)置為 true,那么也刪除具有只讀屬性的文件。缺省的 force 參數(shù)是False

FileExists(filespec)

如果 filespec 指定的文件存在則返回 True,否則返回 False。filespec 參數(shù)可以包含文件的絕對(duì)路徑或相對(duì)路徑,或者是當(dāng)前文件夾中的文件名

GetBaseName(filespec)

返回 filespec 指定的文件的名稱,即包含文件路徑但去掉了文件的擴(kuò)展名

GetExtensionName(filespec)

返回 filespec 指定的文件的擴(kuò)展名

GetFile(filespec)

返回 filespec 指定的文件所對(duì)應(yīng)的 File 對(duì)象。可以指定文件的相對(duì)或絕對(duì)路徑

GetFileName(pathspec)

返回pathspec 指定的文件的路徑或文件名,如果沒(méi)有文件名就返回最后的文件夾名。不檢查該文件或文件夾是否存在

GetTempName()

返回一個(gè)隨機(jī)產(chǎn)生的文件名,用于完成運(yùn)算所需的臨時(shí)文件或文件夾

MoveFile(source,destination)

將 source 指定的一個(gè)或多個(gè)源文件移動(dòng)到 destination 指定的目的文件夾。在 source里可以包含通配符,但 destination 不行。如果 source 包含通過(guò)配符或 destination 末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是一文件夾。否則,認(rèn)為 destination 是一新文件夾的完整路徑和名稱。如果目的文件夾已經(jīng)存在則產(chǎn)生錯(cuò)誤

OpenTextFile(filename,iomode,create,format)

創(chuàng)建一個(gè)名叫做 filename 的文件,或打開(kāi)一個(gè)現(xiàn)有的名為 filename 的文件,并且返回一個(gè)與其相關(guān)的 TextStream 對(duì)象。filename 參數(shù)可以包含絕對(duì)或相對(duì)路徑。iomode 參數(shù)指定了所要求的訪問(wèn)類型。允許的數(shù)值是 ForReading(1)(缺省)、ForWriting(2)、ForAppending(8)。當(dāng)寫(xiě)入或追加到一個(gè)不存在的文件時(shí),如果 create 參數(shù)設(shè)置為 true,就將創(chuàng)建一個(gè)新文件。缺省的 create 參數(shù)是 False。format 參數(shù)說(shuō)明對(duì)文件讀或?qū)懙臄?shù)據(jù)格式。允許數(shù)值是:TristatetFalse(0)(缺省),按照 ASCII 格式打開(kāi);TristatetTrue(-1),按照 Unicode 格式打開(kāi);TristateDefault(-2),用系統(tǒng)缺省格式打開(kāi)

 CopyFile及MoveFile的使用

方法名:CopyFile(source,destination,overwrite)
說(shuō)明:將一個(gè)或多個(gè)文件從某位置復(fù)制到另一位置。詳細(xì)說(shuō)明請(qǐng)見(jiàn)表7
方法名:MoveFile(source,destination)
說(shuō)明:將 source 指定的一個(gè)或多個(gè)源文件移動(dòng)到 destination 指定的目的文件夾。
示例:

Dim sourcepath,targetpath
sourcepath = "C:/testing/*.txt"
targetpath = "C:/123/"
Call FolderAttributes(sourcepath,targetpath)
Sub FolderAttributes(sourcepath,targetpath)
   Dim fso
       Set fso = CreateObject("Scripting.FileSystemObject")
'將testing文件夾下所有擴(kuò)展名名為.txt的文件,復(fù)制到123文件夾下
       fso.CopyFile sourcepath,targetpath
       fso.MoveFile sourcepath,targetpath
End Sub

備注:如果C:/123文件夾不存在,則腳本運(yùn)行時(shí)提示“路徑不存在”

CreateTextFile及DeleteFile的使用

方法名:CreateTextFile(filename,overwrite,unicode)
說(shuō)明:創(chuàng)建指定文件并返回 TextStream 對(duì)象,該對(duì)象可用于讀或?qū)憚?chuàng)建的文件。
方法名:DeleFile(filespec,force)
說(shuō)明:刪除指定的文件。詳細(xì)說(shuō)明請(qǐng)見(jiàn)表7.
示例:

Dim sourcepath
sourcepath = "C:/testing/ myClass2.doc "
Call FolderAttributes(sourcepath)
 
Sub FolderAttributes(sourcepath)
   Dim fso
       Set fso = CreateObject("Scripting.FileSystemObject")
'在testing文件夾下,使用CreateTextFile()創(chuàng)建myClass2.doc文件
fso.CreateTextFile sourcepath,true
'刪除testing文件夾下,所有擴(kuò)展名為.txt的文件
fso.DeleteFile sourcepath,true
End Sub

備注:如果所刪除的文件為只讀屬性且DeleteFile()的參數(shù)為false的話,則腳本運(yùn)行是出現(xiàn)“沒(méi)有權(quán)限”FileExists的使用
方法名:FileExists(filespec)
說(shuō)明:判斷所指定的文件是否存在。此方法將返回Bool值. 詳細(xì)說(shuō)明請(qǐng)見(jiàn)表7.
示例:

Dim sourcepath
sourcepath = "C:/testing/test.txt"
Call FolderAttributes(sourcepath)
 
Sub FolderAttributes(sourcepath)
   Dim fso
       Set fso = CreateObject("Scripting.FileSystemObject")
       '判斷C:/testing/test.txt是否有存在,如果存在返回“true”;否則返回“false”
       If fso.FileExists(sourcepath) Then
              msgbox "true"
       else
              msgbox "false"
       End If
End Sub

GetBaseName、GetFileName及GetExtensionName的使用

方法名:GetBaseName(filespec)
說(shuō)明:返回字符串,文件 (不帶擴(kuò)展名), 或者提供的路徑說(shuō)明中的文件夾。
方法名:GetExtensionName(filespec)
說(shuō)明:返回字符串,該字符串包含路徑最后一個(gè)組成部分的擴(kuò)展名。
方法名:GetFileName(pathspec)
說(shuō)明:返回指定路徑(不是指定驅(qū)動(dòng)器路徑部分)的最后一個(gè)文件或文件夾。
示例:

Dim sourcepath
sourcepath = "C:/testing/test.txt"
Call FolderAttributes(sourcepath)
 
Sub FolderAttributes(sourcepath)
   Dim fso
       Set fso = CreateObject("Scripting.FileSystemObject")
       '返回文件名test, 擴(kuò)展名 txt, 文件名+擴(kuò)展名 test.txt
         Msgbox (fso.GetBaseName(sourcepath))
         Msgbox (fso. GetExtensionName(sourcepath))
       Msgbox (fso.GetFileName(sourcepath))
End Sub

GetFile的使用

方法名:GetFile(filespec)
說(shuō)明:返回與指定路徑中某文件相應(yīng)的 File 對(duì)象,既而可以訪問(wèn)到File的屬性。
示例:

Dim sourcepath
sourcepath = "C:/testing/778899.txt"
Call FolderAttributes(sourcepath)
 
Sub FolderAttributes(sourcepath)
   Dim fso,objFile
       Set fso = CreateObject("Scripting.FileSystemObject")
       '調(diào)用GetFile()返回File對(duì)象,通過(guò)File對(duì)象來(lái)訪問(wèn)其下的屬性
       set objFile = fso.GetFile(sourcepath)
       reporter.ReportEvent micDone,"訪問(wèn)file的屬性","該文件所在的盤(pán)符為:" objFile.Drive "              文件名為:" objFile.Name
End Sub

注:關(guān)于File對(duì)象的屬性,將在下面會(huì)詳細(xì)介紹

GetTempName的使用

方法名:GetTempName()
說(shuō)明:返回隨機(jī)生成的臨時(shí)文件或文件夾的名稱,用于執(zhí)行要求臨時(shí)文件或文件夾的操作
示例:

Dim fso, tempfile
'創(chuàng)建FileSystemObject對(duì)象
Set fso = CreateObject("Scripting.FileSystemObject")
'調(diào)用CreateTempFile函數(shù),并將對(duì)象賦值給tempfile
Set tempfile = CreateTempFile
'在臨時(shí)文件中寫(xiě)入字符
tempfile.WriteLine "世界你好"
'關(guān)閉對(duì)象
tempfile.Close
 
Function CreateTempFile
   Dim tfolder, tname, tfile
   Const TemporaryFolder = 2
   'GetSpecialFolder()中的參數(shù)2,返回一個(gè)名為T(mén)emp的臨時(shí)文件夾
   Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
   '隨機(jī)生成一個(gè)臨時(shí)文件名
   tname = fso.GetTempName
   '在Temp臨時(shí)文件夾下面,創(chuàng)建一個(gè)臨時(shí)文件
   Set tfile = tfolder.CreateTextFile(tname)
   '將結(jié)果賦值給函數(shù)
   Set CreateTempFile = tfile
End Function

備注:GetTempName 方法不創(chuàng)建文件,該方法僅提供臨時(shí)文件名。示例中的的結(jié)果,默認(rèn)保存在C:/Documents and Settings/Administrator/Local Settings/Temp

OpenTextFile的使用

方法名:(filename,iomode,create,format)
說(shuō)明:打開(kāi)指定的文件并返回一個(gè) TextStream 對(duì)象,可以讀取、寫(xiě)入此對(duì)象或?qū)⑵渥芳拥轿募T敿?xì)的說(shuō)明見(jiàn)表7.
示例:

Dim spec
spec = "C:/testing.txt"
'三個(gè)參數(shù)的分別為:以只讀模式打開(kāi)文件、以只寫(xiě)方式打開(kāi)文件、打開(kāi)文件并在文件末尾進(jìn)行寫(xiě)操作
Const intForReading = 1,intForWriting = 2,intForAppending = 8
'調(diào)用OpenTextFileTest()
Call OpenTextFileTest(spec,intForAppending)
 
Sub OpenTextFileTest(sepc,intForAppending)
   Dim fso,objTStream
   '創(chuàng)建FileSystemObject對(duì)象
   Set fso = CreateObject("Scripting.FileSystemObject")
   '參數(shù)true表示:如果文件不存在,則創(chuàng)建文件。最后OpenTextFile()將返回TextStream對(duì)象
   Set objTStream = fso.OpenTextFile(sepc,intForAppending,true)
   '利用TextStream對(duì)象來(lái)將字符串寫(xiě)入文件
   objTStream.write "hello word!"
   '釋放TextStream對(duì)象
   objTStream.close
End Sub

File對(duì)象所提供的屬性

表8 File 對(duì)象的屬性及說(shuō)明

屬性

說(shuō)明

Attributes

返回文件的屬性。可以是下列值中的一個(gè)或其組合:Normal(0)、ReadOnly(1)、Hidden(2)、System(4)、Volume(名稱)(9)、Directory(文件夾)(16)、Archive(32)、Alias(64) 和 Compressed(128)

DateCreated

返回該文件夾的創(chuàng)建日期和時(shí)間

DateLastAccessed

返回最后一次訪問(wèn)該文件的日期和時(shí)間

DateLastModified

返回最后一次修改該文件的日期和時(shí)間

Drive

返回該文件所在的驅(qū)動(dòng)器的 Drive 對(duì)象

Name

設(shè)定或返回文件的名字

ParentFolder

返回該文件的父文件夾的 Folder 對(duì)象

Path

返回文件的絕對(duì)路徑,可使用長(zhǎng)文件名

ShortName

返回 DOS 風(fēng)格的 8.3 形式的文件名

ShortPath

返回 DOS 風(fēng)格的 8.3 形式的文件絕對(duì)路徑

Size

返回該文件的大小(字節(jié))

Type

如果可能,返回一個(gè)文件類型的說(shuō)明字符串(例如:“Text Document”表示 .txt 文件)

我們?cè)谇懊鍲ile對(duì)象的方法中曾提到,可以使用FileSystemObject對(duì)象的GetFile()來(lái)訪問(wèn)File對(duì)象屬性。
訪問(wèn)File對(duì)象屬性的示例如下:

Dim sourcepath
sourcepath = "C:/testing/778899.txt"
Call FolderAttributes(sourcepath)

Sub FolderAttributes(sourcepath)
Dim fso,objFile
Set fso = CreateObject("Scripting.FileSystemObject")
'調(diào)用GetFile()返回File對(duì)象,通過(guò)File對(duì)象來(lái)訪問(wèn)其下的屬性
set objFile = fso.GetFile(sourcepath)
reporter.ReportEvent micDone,"訪問(wèn)file的屬性","該文件所在的盤(pán)符為:" objFile.Drive " 文件名為:" objFile.Name
End Sub

備注:File對(duì)象屬性的使用方法和前面介紹的Folder對(duì)象屬性的使用方法一樣,所以在這不一一列出。

TextStream對(duì)象概述

TextStream對(duì)象是用于訪問(wèn)文本文件的對(duì)象,它是FileSystemObject一個(gè)獨(dú)立的附屬對(duì)象,但在使用TextStream對(duì)象時(shí),我們?nèi)砸柚鶩ileSystemObject 對(duì)象或其附屬對(duì)象來(lái)創(chuàng)建一個(gè) TextStream 對(duì)象并訪問(wèn)磁盤(pán)文件的內(nèi)容。可以通過(guò)FileSystemObject 對(duì)象的CreateTextFile()及OpenTextFile(),來(lái)獲取TextStream的對(duì)象句柄。
下面我們來(lái)具體的看看TextStream 對(duì)象的方法及屬性的使用。

一、TextStream對(duì)象的方法

表9  TextStream 對(duì)象的方法及說(shuō)明

方法

說(shuō)明

Close()

關(guān)閉一個(gè)打開(kāi)的文件

Read(numchars)

從文件中讀出 numchars 個(gè)字符

ReadAll()

作為單個(gè)字符串讀出整個(gè)文件

ReadLine()

作為一個(gè)字符串從文件中讀出一行(直到回車(chē)符和換行)

Skip(numchars)

當(dāng)從文件讀出時(shí)忽略 numchars 個(gè)字符

SkipLine()

當(dāng)從文件讀出時(shí)忽略下一行

Write(string)

向文件寫(xiě)入字符串 string

WriteLine(string)

向文件寫(xiě)入字符串 string(可選)和換行符

WriteBlankLines(n)

向文件寫(xiě)入 n 個(gè)換行符

Close、Write、WriteLine及WriteBlankLines的使用

方法名:Close()
說(shuō)明:關(guān)閉正在打開(kāi)的文件
方法名:WriteLine(string)
說(shuō)明:向文件寫(xiě)入字符串 string(可選)和換行符。
示例:

Dim strPath,strText
strPath = "C:/testing.txt"
strText = "This is Test !"  vbCrLf  “hello word !”
'調(diào)用函數(shù)
Call CreateFile(strPath,strText)

Sub CreateFile(strPath,strText)
Dim objFso,objStream
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject("Scripting.FileSystemObject")
'使用FileSystemObject對(duì)象的CreateTextFile(),來(lái)返回一個(gè)TextStream對(duì)象句柄
Set objStream = objFso.CreateTextFile(strPath,True)
'三個(gè)Write的意思分別為:在文本中寫(xiě)入字符、寫(xiě)入帶換行符的字符、寫(xiě)入3個(gè)換行符
objStream.Write(strText)
‘objStream.WriteLine(strText)
‘objStream. WriteBlankLines 3
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub

Read、ReadAll及ReadLine的使用

方法名:Read(numchars)
說(shuō)明:從 TextStream 文件中讀入指定數(shù)目的字符并返回結(jié)果字符串。
方法名:ReadAll()
說(shuō)明:讀入全部 TextStream 文件并返回結(jié)果字符串。
方法名:ReadLine()
說(shuō)明:從 TextStream 文件中讀入一整行字符(直到下一行,但不包括下一行字符),并返回結(jié)果字符串。
示例:

Sub CreateFile(strPath,strText)
Dim objFso,objStream
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject("Scripting.FileSystemObject")
'使用FileSystemObject對(duì)象的CreateTextFile(),來(lái)返回一個(gè)TextStream對(duì)象句柄
Set objStream = objFso.CreateTextFile(strPath,True)
'寫(xiě)入字符
objStream.WriteLine(strText)
Set objStream = objFso.OpenTextFile(strPath,1,true)
msgbox (objStream.ReadLine)
'msgbox (objStream.ReadAll)
' msgbox (objStream.Read(Len(strText)))
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub

Skip、SkipLine的使用

方法名:Skip(numchars)
說(shuō)明:讀取 TextStream 文件時(shí)跳過(guò)指定數(shù)目的字符
方法名:SkipLine()
說(shuō)明:當(dāng)讀到 TextStream 文件時(shí),跳過(guò)下一行。
示例:

Dim strPath,strText
strPath = "C:/testing.txt"
'調(diào)用函數(shù)
Call CreateFile(strPath)

Sub CreateFile(strPath)
Dim objFso,objStream
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject("Scripting.FileSystemObject")
'使用FileSystemObject對(duì)象的CreateTextFile(),來(lái)返回一個(gè)TextStream對(duì)象句柄
Set objStream = objFso.CreateTextFile(strPath,True)
'在文本中寫(xiě)入字符
objStream.Write "This is Test !"  vbCrLf  "hello word !"
'以只讀的方式打開(kāi)文件
Set objStream = objFso.OpenTextFile(strPath,1,true)
'讀取文件時(shí)跳過(guò)5個(gè)字符;或者跳過(guò)當(dāng)前行,讀取下一行
objStream.Skip(5)
'objStream.SkipLine
'讀取文本內(nèi)容
msgbox objStream.ReadAll
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub

備注:兩者的區(qū)別是:Skip——跳過(guò)指定的幾個(gè)字符;SkipLine——跳過(guò)一行

二、TextStream對(duì)象的屬性

TextStream 的屬性提供有關(guān)文件內(nèi)文件指針當(dāng)前位置的信息,如表9所示。注意,所有的屬性是只讀的。

表10  TextStream 對(duì)象的屬性及說(shuō)明

屬性

說(shuō)明

AtEndOfLine

如果文件位置指針在文件中一行的末尾則返回 True

AtEndOfStream

如果文件位置指針在文件的末尾則返回 True

Column

從 1 開(kāi)始返回文件中當(dāng)前字符的列號(hào)

Line

從 1 開(kāi)始返回文件中當(dāng)前行的行號(hào)”

AtEndOfLine 和 AtEndOfStream 屬性僅對(duì)以 iomode 參數(shù)為 ForReading 的方式打開(kāi)的文件可用,否則將會(huì)出錯(cuò)。

AtEndOfLine及AtEndOfStream的使用

示例:

Dim strPath,strText
strPath = "C:/testing.txt"
'調(diào)用函數(shù)
Call CreateFile(strPath)
 
Sub CreateFile(strPath)
    Dim objFso,objStream,str
    '創(chuàng)建FileSystemObject對(duì)象
    Set objFso = CreateObject("Scripting.FileSystemObject")
    '以只讀的方式打開(kāi)文件,如果文件不存在則創(chuàng)建它
    Set objStream = objFso.OpenTextFile(strPath,1,true)
    '如果當(dāng)前的指針不在行末,則讀取文本內(nèi)容
    Do While objStream.AtEndOfLine > true
    ‘Do While objStream.AtEndOfStream > true
       str = str + objStream.Read(1)
    Loop
    msgbox str
     '關(guān)閉TextStream對(duì)象
    objStream.Close
End Sub

備注:兩者間的區(qū)別是:AtEndOfLine——讀取到當(dāng)前文本行的末尾;AtEndOfStream——讀取到整個(gè)文本的末尾

Column及Line的使用

示例:

Sub TestTextStream(strPath)
  Dim objFso,objTStream,str
    Set objFso = CreateObject("Scripting.FileSystemObject")
    '以只讀的方式打開(kāi)文件
    Set objTStream = objFso.OpenTextFile(strPath,1)
    '如果當(dāng)前的指針不在整個(gè)文檔的末尾,讀取文本的所有內(nèi)容
  Do While objTStream.AtEndOfStream > true
          objTStream.ReadAll
         str = str + "共有"  objTStream.Line  "行數(shù)據(jù),光標(biāo)最后所在列號(hào)為:"  objTStream.Column  vbCrLf
  Loop
    '打印信息
print str
End Sub

FileSystemObject實(shí)例代碼

創(chuàng)建文件

set fso = server.CreateObject("Scripting.FileSystemObject")
set f = fso.CreateTextFile("C:\test.txt", true) '第二個(gè)參數(shù)表示目標(biāo)文件存在時(shí)是否覆蓋
f.Write("寫(xiě)入內(nèi)容")
f.WriteLine("寫(xiě)入內(nèi)容并換行")
f.WriteBlankLines(3) '寫(xiě)入三個(gè)空白行(相當(dāng)于在文本編輯器中按三次回車(chē))
f.Close()
set f = nothing
set fso = nothing

打開(kāi)并讀文件

set fso = server.CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile("C:\test.txt", 1, false) '第二個(gè)參數(shù) 1 表示只讀打開(kāi),第三個(gè)參數(shù)表示目標(biāo)文件不存在時(shí)是否創(chuàng)建
f.Skip(3) '將當(dāng)前位置向后移三個(gè)字符
f.SkipLine() '將當(dāng)前位置移動(dòng)到下一行的第一個(gè)字符,注意:無(wú)參數(shù)
response.Write f.Read(3) '從當(dāng)前位置向后讀取三個(gè)字符,并將當(dāng)前位置向后移三個(gè)字符
response.Write f.ReadLine() '從當(dāng)前位置向后讀取直到遇到換行符(不讀取換行符),并將當(dāng)前位置移動(dòng)到下一行的第一個(gè)字符,注意:無(wú)參數(shù)
response.Write f.ReadAll() '從當(dāng)前位置向后讀取,直到文件結(jié)束,并將當(dāng)前位置移動(dòng)到文件的最后
if f.atEndOfLine then
  response.Write("一行的結(jié)尾!")
end if
if f.atEndOfStream then
  response.Write("文件的結(jié)尾!")
end if
f.Close()
set f = nothing
set fso = nothing

打開(kāi)并寫(xiě)文件

set fso = server.CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile("C:\test.txt", 2, false) '第二個(gè)參數(shù) 2 表示重寫(xiě),如果是 8 表示追加
f.Write("寫(xiě)入內(nèi)容")
f.WriteLine("寫(xiě)入內(nèi)容并換行")
f.WriteBlankLines(3) '寫(xiě)入三個(gè)空白行(相當(dāng)于在文本編輯器中按三次回車(chē))
f.Close()
set f = nothing
set fso = nothing

判斷文件是否存在

set fso = server.CreateObject("Scripting.FileSystemObject")
if fso.FileExists("C:\test.txt") then
  response.Write("目標(biāo)文件存在")
else
  response.Write("目標(biāo)文件不存在")
end if
set fso = nothing

移動(dòng)文件

set fso = server.CreateObject("Scripting.FileSystemObject")
call fso.MoveFile("C:\test.txt", "D:\test111.txt") '兩個(gè)參數(shù)的文件名部分可以不同
set fso = nothing

復(fù)制文件

set fso = server.CreateObject("Scripting.FileSystemObject")
call fso.CopyFile("C:\test.txt", "D:\test111.txt") '兩個(gè)參數(shù)的文件名部分可以不同
set fso = nothing

刪除文件

set fso = server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile("C:\test.txt")
set fso = nothing

創(chuàng)建文件夾

set fso = server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder("C:\test") '目標(biāo)文件夾的父文件夾必須存在
set fso = nothing

判斷文件夾是否存在

set fso = server.CreateObject("Scripting.FileSystemObject")
if fso.FolderExists("C:\Windows") then
    response.Write("目標(biāo)文件夾存在")
else
    response.Write("目標(biāo)文件夾不存在")
end if
set fso = nothing

刪除文件夾

set fso = server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder("C:\test") '文件夾不必為空
set fso = nothing

檢測(cè)驅(qū)動(dòng)器C盤(pán)是否存在

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DriveExists("c:")

獲取文件路徑的驅(qū)動(dòng)器名

Set fso=Server.CreateObject("Scripting.FileSystemObject")
p=fso.GetDriveName(Server.MapPath("aqa33"))
Response.Write("驅(qū)動(dòng)器名稱是:" p)
set fs=nothing

取得某個(gè)指定的路徑的父文件夾的名稱

Set fso=Server.CreateObject("Scripting.FileSystemObject")
p=fso.GetParentFolderName(Server.MapPath("aqa331.asp"))
Response.Write("父文件夾名稱是:" p)
set fs=nothing

取得指定路徑中的最后一個(gè)成分的文件擴(kuò)展名

Set fs=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fs.GetExtensionName(Server.MapPath("aqa33.asxd")))
set fs=nothing

取得指定路徑中的最后一個(gè)成分的文件名

Set fs=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fs.GetFileName(Server.MapPath("aqa33.asxd")))
set fs=nothing

返回在指定的路徑中文件或者文件夾的基本名稱。

Set fso=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fso.GetBaseName("c:\windows\cursors\abc.cur"))
Response.Write("br />")
Response.Write(fso.GetBaseName("c:\windows\cursors\"))
Response.Write("br />")
Response.Write(fso.GetBaseName("c:\windows\"))
set fso=nothing

好了,這篇文章就介紹到這里了,基本上內(nèi)容就差不多了。希望大家以后多多支持腳本之家。 

您可能感興趣的文章:
  • VBS基礎(chǔ)篇 - FileSystemObject對(duì)象詳解
  • VBS教程:對(duì)象-FileSystemObject 對(duì)象
  • VBS教程:屬性-FileSystem 屬性
  • VB FileSystemObject對(duì)象實(shí)例詳解

標(biāo)簽:西安 鶴壁 海口 四平 邢臺(tái) 文山 湖州 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBS中FileSystemObject對(duì)象詳解(完整版)》,本文關(guān)鍵詞  VBS,中,FileSystemObject,對(duì)象,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《VBS中FileSystemObject對(duì)象詳解(完整版)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于VBS中FileSystemObject對(duì)象詳解(完整版)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    综合久久久久久| 久久精品国产精品亚洲精品| 久久综合九色综合97婷婷| 久久综合九色综合欧美亚洲| 国产欧美日韩视频一区二区| 亚洲婷婷综合色高清在线| 亚洲一级片在线观看| 激情五月激情综合网| 91欧美一区二区| 日韩精品一区二区在线观看| 国产精品久久国产精麻豆99网站| 亚洲日本va在线观看| 久久激情五月激情| 一本久道久久综合中文字幕| 3751色影院一区二区三区| 2020国产精品| 亚洲一区二区精品视频| 久久99久国产精品黄毛片色诱| 成人app在线| 精品久久久久久久人人人人传媒| 国产精品国产三级国产aⅴ原创| 亚洲第四色夜色| 不卡欧美aaaaa| 久久影院视频免费| 亚洲va欧美va人人爽午夜| 国产精品1区2区| 91精品一区二区三区久久久久久 | 亚洲免费高清视频在线| 久久国产精品色| 欧美三级乱人伦电影| 国产欧美日韩不卡| 青青草国产成人99久久| 欧美性猛交一区二区三区精品| 久久久久久久综合| 奇米影视一区二区三区| 欧美日韩电影一区| 亚洲欧美经典视频| av亚洲精华国产精华精华 | 欧美刺激午夜性久久久久久久| 国产日产欧美一区| 麻豆精品国产传媒mv男同| 欧洲在线/亚洲| 综合激情网...| av不卡在线观看| 国产精品网站在线| 国产成人自拍网| 久久看人人爽人人| 久久激情五月激情| 欧美亚洲自拍偷拍| 亚洲综合图片区| 久久99九九99精品| 777久久久精品| 日韩福利视频导航| 欧美高清你懂得| 日韩成人一级大片| 日韩欧美一卡二卡| 日韩精品高清不卡| 日韩视频中午一区| 国产美女一区二区| 国产精品久久久久久妇女6080 | 国产三级精品三级在线专区| 激情欧美一区二区三区在线观看| 这里只有精品免费| 久久97超碰国产精品超碰| 精品国内片67194| 国产成人av资源| 中文字幕一区二区在线播放| 99视频热这里只有精品免费| 亚洲色图19p| 欧美日韩的一区二区| 激情综合色播五月| 国产精品三级久久久久三级| 最新成人av在线| 在线精品视频一区二区三四| 亚洲国产一二三| 91麻豆精品国产自产在线观看一区| 亚洲大片免费看| 欧美日韩国产不卡| 午夜a成v人精品| 精品国产一区二区亚洲人成毛片| 国产福利一区在线观看| 亚洲女子a中天字幕| 国产一区二区在线观看视频| 久久久久国产成人精品亚洲午夜| 国产在线播放一区三区四| 中文字幕不卡的av| 在线日韩一区二区| 蜜臀av一区二区| 国产精品成人网| 在线看国产一区二区| 狠狠色狠狠色综合| 一二三区精品福利视频| 日韩欧美色电影| 久久99精品国产麻豆婷婷洗澡| 国产99久久久精品| 亚洲成av人片一区二区梦乃| 欧美www视频| 国产成人精品一区二| 午夜久久福利影院| 国产视频一区二区在线观看| 91黄色激情网站| 久久精品国内一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 欧美午夜精品免费| 粉嫩在线一区二区三区视频| 香蕉久久一区二区不卡无毒影院 | 91欧美激情一区二区三区成人| 久久不见久久见免费视频7| 亚洲欧美视频在线观看视频| 久久久久99精品一区| 91精品国产品国语在线不卡| 99久久久国产精品| 国产精品一二三四五| 日本免费新一区视频| 不卡的av网站| 精品一区二区三区蜜桃| 亚洲一区在线观看视频| 国产精品欧美一区二区三区| 日韩午夜在线影院| 欧美亚男人的天堂| 不卡一区二区在线| 国产黑丝在线一区二区三区| 亚洲人成网站影音先锋播放| 国产日韩欧美精品一区| 欧美一区二区三区四区视频| 欧美日韩一区二区三区在线看| 国产精品中文有码| 韩国精品在线观看| 另类欧美日韩国产在线| 亚洲精品国产精华液| 国产欧美日韩视频在线观看| 精品福利视频一区二区三区| 欧美人与z0zoxxxx视频| 欧洲一区二区三区免费视频| 91视频一区二区三区| 国产69精品久久久久毛片| 日韩1区2区日韩1区2区| 亚洲永久免费av| 亚洲成人你懂的| 一级日本不卡的影视| 亚洲精品视频在线看| 亚洲在线中文字幕| 亚洲第一会所有码转帖| 亚洲手机成人高清视频| 国产欧美一区二区精品婷婷| 精品久久久网站| 日韩欧美一二三四区| 日韩视频免费观看高清完整版在线观看| 欧美性色黄大片手机版| 一本大道av伊人久久综合| 91亚洲午夜精品久久久久久| 国产精品亚洲人在线观看| 粉嫩av一区二区三区粉嫩| www.亚洲色图| 色综合久久久久久久久| 99麻豆久久久国产精品免费优播| 成人免费的视频| 日本电影亚洲天堂一区| 91色九色蝌蚪| 91视视频在线直接观看在线看网页在线看| 91在线观看美女| 欧美主播一区二区三区| 欧美一区二区在线免费观看| 9191精品国产综合久久久久久| 日韩精品一区二区三区在线| 久久久亚洲综合| 日韩毛片一二三区| 日本美女一区二区三区| 精品在线播放午夜| a美女胸又www黄视频久久| 91一区二区在线| 欧美美女网站色| 欧美日韩mp4| 日韩欧美专区在线| 久久综合九色综合97_久久久| 国产在线播放一区二区三区| 国产.欧美.日韩| 色视频欧美一区二区三区| 欧美精品三级日韩久久| 日韩一区二区三区av| 久久久精品国产免大香伊| 欧美激情资源网| 一区二区三区欧美日韩| 一区二区三区免费网站| 蜜桃av一区二区在线观看| 精品制服美女丁香| 成人激情午夜影院| 日韩一区二区三区免费看| 国产午夜精品在线观看| 一区二区三区中文字幕| 激情综合色丁香一区二区| 色噜噜久久综合| 精品国产1区二区| 亚洲资源中文字幕| 国产精品自拍三区| 欧美在线|欧美| 精品成人佐山爱一区二区| 国产精品久久久久久久久久久免费看| 亚洲最快最全在线视频| 国产精品久久久久影视|