| 以下為引用的內容: ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' 一些容易取得的全局變量
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Dim TabStopDim NewLine
 Const TestDrive = "C"Const TestFilePath = "C:Test"
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' 由 Drive.DriveType 返回的常數
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Const DriveTypeRemovable = 1Const DriveTypeFixed = 2
 Const DriveTypeNetwork = 3
 Const DriveTypeCDROM = 4
 Const DriveTypeRAMDisk = 5
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' 由 File.Attributes 返回的常數
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Const FileAttrNormal = 0Const FileAttrReadOnly = 1
 Const FileAttrHidden = 2
 Const FileAttrSystem = 4
 Const FileAttrVolume = 8
 Const FileAttrDirectory = 16
 Const FileAttrArchive = 32
 Const FileAttrAlias = 64
 Const FileAttrCompressed = 128
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' 用來打開文件的常數
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Const OpenFileForReading = 1 Const OpenFileForWriting = 2
 Const OpenFileForAppending = 8
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' ShowDriveType
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述給定 Drive 對象的驅動器類型。
 '
 ' 示范下面的內容
 '
 ' - Drive.DriveType
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function ShowDriveType(Drive) Dim S
 Select Case Drive.DriveType
 Case DriveTypeRemovable
 S = "Removable"
 Case DriveTypeFixed
 S = "Fixed"
 Case DriveTypeNetwork
 S = "Network"
 Case DriveTypeCDROM
 S = "CD-ROM"
 Case DriveTypeRAMDisk
 S = "RAM Disk"
 Case Else
 S = "Unknown"
 End Select
 ShowDriveType = S End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' ShowFileAttr
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述文件或文件夾的屬性。
 '
 ' 示范下面的內容
 '
 ' - File.Attributes
 ' - Folder.Attributes
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function ShowFileAttr(File) ' File 可以是文件或文件夾 Dim SDim Attr
 
 Attr = File.Attributes
 If Attr = 0 ThenShowFileAttr = "Normal"
 Exit Function
 End If
 If Attr And FileAttrDirectory Then S = S & "Directory "If Attr And FileAttrReadOnly Then S = S & "Read-Only "
 If Attr And FileAttrHidden Then S = S & "Hidden "
 If Attr And FileAttrSystem Then S = S & "System "
 If Attr And FileAttrVolume Then S = S & "Volume "
 If Attr And FileAttrArchive Then S = S & "Archive "
 If Attr And FileAttrAlias Then S = S & "Alias "
 If Attr And FileAttrCompressed Then S = S & "Compressed "
 ShowFileAttr = S End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' GenerateDriveInformation
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述可用驅動器的當前狀態。
 '
 ' 示范下面的內容
 '
 ' - FileSystemObject.Drives
 ' - Iterating the Drives collection
 ' - Drives.Count
 ' - Drive.AvailableSpace
 ' - Drive.DriveLetter
 ' - Drive.DriveType
 ' - Drive.FileSystem
 ' - Drive.FreeSpace
 ' - Drive.IsReady
 ' - Drive.Path
 ' - Drive.SerialNumber
 ' - Drive.ShareName
 ' - Drive.TotalSize
 ' - Drive.VolumeName
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function GenerateDriveInformation(FSO) Dim DrivesDim Drive
 Dim S
 Set Drives = FSO.Drives S = "Number of drives:" & TabStop & Drives.Count & NewLine & NewLine ' 構造報告的第一行。S = S & String(2, TabStop) & "Drive"
 S = S & String(3, TabStop) & "File"
 S = S & TabStop & "Total"
 S = S & TabStop & "Free"
 S = S & TabStop & "Available"
 S = S & TabStop & "Serial" & NewLine
 ' 構造報告的第二行。S = S & "Letter"
 S = S & TabStop & "Path"
 S = S & TabStop & "Type"
 S = S & TabStop & "Ready?"
 S = S & TabStop & "Name"
 S = S & TabStop & "System"
 S = S & TabStop & "Space"
 S = S & TabStop & "Space"
 S = S & TabStop & "Space"
 S = S & TabStop & "Number" & NewLine
 ' 分隔行。S = S & String(105, "-") & NewLine
 For Each Drive In Drives S = S & Drive.DriveLetterS = S & TabStop & Drive.Path
 S = S & TabStop & ShowDriveType(Drive)
 S = S & TabStop & Drive.IsReady
 If Drive.IsReady ThenIf DriveTypeNetwork = Drive.DriveType Then
 S = S & TabStop & Drive.ShareName
 Else
 S = S & TabStop & Drive.VolumeName
 End If
 S = S & TabStop & Drive.FileSystemS = S & TabStop & Drive.TotalSize
 S = S & TabStop & Drive.FreeSpace
 S = S & TabStop & Drive.AvailableSpace
 S = S & TabStop & Hex(Drive.SerialNumber)
 End If S = S & NewLine Next 
 GenerateDriveInformation = S
 End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' GenerateFileInformation
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述文件的當前狀態。
 '
 ' 示范下面的內容
 '
 ' - File.Path
 ' - File.Name
 ' - File.Type
 ' - File.DateCreated
 ' - File.DateLastAccessed
 ' - File.DateLastModified
 ' - File.Size
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function GenerateFileInformation(File) Dim S S = NewLine & "Path:" & TabStop & File.PathS = S & NewLine & "Name:" & TabStop & File.Name
 S = S & NewLine & "Type:" & TabStop & File.Type
 S = S & NewLine & "Attribs:" & TabStop & ShowFileAttr(File)
 S = S & NewLine & "Created:" & TabStop & File.DateCreated
 S = S & NewLine & "Accessed:" & TabStop & File.DateLastAccessed
 S = S & NewLine & "Modified:" & TabStop & File.DateLastModified
 S = S & NewLine & "Size" & TabStop & File.Size & NewLine
 GenerateFileInformation = S End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' GenerateFolderInformation
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述文件夾的當前狀態。
 '
 ' 示范下面的內容
 '
 ' - Folder.Path
 ' - Folder.Name
 ' - Folder.DateCreated
 ' - Folder.DateLastAccessed
 ' - Folder.DateLastModified
 ' - Folder.Size
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function GenerateFolderInformation(Folder)
 Dim S S = "Path:" & TabStop & Folder.PathS = S & NewLine & "Name:" & TabStop & Folder.Name
 S = S & NewLine & "Attribs:" & TabStop & ShowFileAttr(Folder)
 S = S & NewLine & "Created:" & TabStop & Folder.DateCreated
 S = S & NewLine & "Accessed:" & TabStop & Folder.DateLastAccessed
 S = S & NewLine & "Modified:" & TabStop & Folder.DateLastModified
 S = S & NewLine & "Size:" & TabStop & Folder.Size & NewLine
 GenerateFolderInformation = S End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' GenerateAllFolderInformation
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述一個文件夾和所有文件及子文件夾的當前狀態。
 '
 ' 示范下面的內容
 '
 ' - Folder.Path
 ' - Folder.SubFolders
 ' - Folders.Count
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function GenerateAllFolderInformation(Folder)
 Dim SDim SubFolders
 Dim SubFolder
 Dim Files
 Dim File
 S = "Folder:" & TabStop & Folder.Path & NewLine & NewLine Set Files = Folder.Files If 1 = Files.Count ThenS = S & "There is 1 file" & NewLine
 Else
 S = S & "There are " & Files.Count & " files" & NewLine
 End If
 If Files.Count <> 0 Then For Each File In FilesS = S & GenerateFileInformation(File)
 Next
 End If Set SubFolders = Folder.SubFolders If 1 = SubFolders.Count ThenS = S & NewLine & "There is 1 sub folder" & NewLine & NewLine
 Else
 S = S & NewLine & "There are " & SubFolders.Count & " sub folders" & NewLine & NewLine
 End If
 If SubFolders.Count <> 0 Then For Each SubFolder In SubFoldersS = S & GenerateFolderInformation(SubFolder)
 Next
 S = S & NewLine For Each SubFolder In SubFoldersS = S & GenerateAllFolderInformation(SubFolder)
 Next
 End If GenerateAllFolderInformation = S End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' GenerateTestInformation
 '
 ' 目的:
 '
 ' 生成一個字符串,來描述 C:Test 文件夾和所有文件及子文件夾的當前狀態。
 '
 ' 示范下面的內容
 '
 ' - FileSystemObject.DriveExists
 ' - FileSystemObject.FolderExists
 ' - FileSystemObject.GetFolder
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function GenerateTestInformation(FSO)
 Dim TestFolderDim S
 If Not FSO.DriveExists(TestDrive) Then Exit FunctionIf Not FSO.FolderExists(TestFilePath) Then Exit Function
 Set TestFolder = FSO.GetFolder(TestFilePath) GenerateTestInformation = GenerateAllFolderInformation(TestFolder)  End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' DeleteTestDirectory
 '
 ' 目的:
 '
 ' 清理 test 目錄。
 '
 ' 示范下面的內容
 '
 ' - FileSystemObject.GetFolder
 ' - FileSystemObject.DeleteFile
 ' - FileSystemObject.DeleteFolder
 ' - Folder.Delete
 ' - File.Delete
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Sub DeleteTestDirectory(FSO)
 Dim TestFolderDim SubFolder
 Dim File
 <a name="DeleteFile">
 ' 有兩種方法可用來刪除文件:
 FSO.DeleteFile(TestFilePath & "BeatlesOctopusGarden.txt") Set File = FSO.GetFile(TestFilePath & "BeatlesBathroomWindow.txt")File.Delete
 ' 有兩種方法可用來刪除文件夾:
 FSO.DeleteFolder(TestFilePath & "Beatles") FSO.DeleteFile(TestFilePath & "ReadMe.txt") Set TestFolder = FSO.GetFolder(TestFilePath)TestFolder.Delete
 End Sub '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' CreateLyrics
 '
 ' 目的:
 '
 ' 在文件夾中創建兩個文本文件。
 '
 '
 ' 示范下面的內容
 '
 ' - FileSystemObject.CreateTextFile
 ' - TextStream.WriteLine
 ' - TextStream.Write
 ' - TextStream.WriteBlankLines
 ' - TextStream.Close
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Sub CreateLyrics(Folder)
 Dim TextStream</a><a name="CreateTextFile">
 Set TextStream = Folder.CreateTextFile("OctopusGarden.txt")
 </a><a name="WriteToFile">
 TextStream.Write("Octopus' Garden ") ' 請注意,該語句不添加換行到文件中。
 TextStream.WriteLine("(by Ringo Starr)")
 TextStream.WriteBlankLines(1)
 TextStream.WriteLine("I'd like to be under the sea in an octopus' garden in the shade,")
 TextStream.WriteLine("He'd let us in, knows where we've been -- in his octopus' garden in the shade.")
 TextStream.WriteBlankLines(2)
 </a><a name="Close">
 TextStream.Close
 Set TextStream = Folder.CreateTextFile("BathroomWindow.txt")TextStream.WriteLine("She Came In Through The Bathroom Window (by Lennon/McCartney)")
 TextStream.WriteLine("")
 TextStream.WriteLine("She came in through the bathroom window protected by a silver spoon")
 TextStream.WriteLine("But now she sucks her thumb and wanders by the banks of her own lagoon")
 TextStream.WriteBlankLines(2)
 TextStream.Close
 End Sub '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' GetLyrics
 '
 ' 目的:
 '
 ' 顯示 lyrics 文件的內容。
 '
 '
 ' 示范下面的內容
 '
 ' - FileSystemObject.OpenTextFile
 ' - FileSystemObject.GetFile
 ' - TextStream.ReadAll
 ' - TextStream.Close
 ' - File.OpenAsTextStream
 ' - TextStream.AtEndOfStream
 ' - TextStream.ReadLine
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Function GetLyrics(FSO)
 Dim TextStreamDim S
 Dim File
 ' 有多種方法可用來打開一個文本文件,和多種方法來從文件讀取數據。' 這兒用了兩種方法來打開文件和讀取文件:
 Set TextStream = FSO.OpenTextFile(TestFilePath & "BeatlesOctopusGarden.txt", OpenFileForReading)</a><a name="ReadFromFile">
 S = TextStream.ReadAll & NewLine & NewLine
 TextStream.Close
 Set File = FSO.GetFile(TestFilePath & "BeatlesBathroomWindow.txt")Set TextStream = File.OpenAsTextStream(OpenFileForReading)
 Do While Not TextStream.AtEndOfStream
 S = S & TextStream.ReadLine & NewLine
 Loop
 TextStream.Close
 GetLyrics = S
 End Function
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' BuildTestDirectory
 '
 ' 目的:
 '
 ' 創建一個目錄分層結構來示范 FileSystemObject。
 '
 ' 以這樣的次序來創建分層結構:
 '
 ' C:Test
 ' C:TestReadMe.txt
 ' C:TestBeatles
 ' C:TestBeatlesOctopusGarden.txt
 ' C:TestBeatlesBathroomWindow.txt
 '
 '
 ' 示范下面的內容
 '
 ' - FileSystemObject.DriveExists
 ' - FileSystemObject.FolderExists
 ' - FileSystemObject.CreateFolder
 ' - FileSystemObject.CreateTextFile
 ' - Folders.Add
 ' - Folder.CreateTextFile
 ' - TextStream.WriteLine
 ' - TextStream.Close
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 </a><a name="FolderInfo">
 Function BuildTestDirectory(FSO)
 
 Dim TestFolder
 Dim SubFolders
 Dim SubFolder
 Dim TextStream
 ' 排除(a)驅動器不存在,或(b)要創建的目錄已經存在的情況。 If Not FSO.DriveExists(TestDrive) ThenBuildTestDirectory = False
 Exit Function
 End If
 If FSO.FolderExists(TestFilePath) ThenBuildTestDirectory = False
 Exit Function
 End If
 Set TestFolder = FSO.CreateFolder(TestFilePath) Set TextStream = FSO.CreateTextFile(TestFilePath & "ReadMe.txt")TextStream.WriteLine("My song lyrics collection")
 TextStream.Close
 Set SubFolders = TestFolder.SubFolders Set SubFolder = SubFolders.Add("Beatles") CreateLyrics SubFolder  BuildTestDirectory = True End Function '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' 主程序
 '
 ' 首先,它創建一個 test 目錄,以及一些子文件夾和文件。
 ' 然后,它轉儲有關可用磁盤驅動器和 test 目錄的某些信息,
 ' 最后,清除 test 目錄及其所有內容。
 '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Sub Main Dim FSO ' 設立全局變量。TabStop = Chr(9)
 NewLine = Chr(10)
 </a><a name="CreateFSO">
 Set FSO = CreateObject("Scripting.FileSystemObject")
 If Not BuildTestDirectory(FSO) Then Print "Test directory already exists or cannot be created. Cannot continue."
 Exit Sub
 End If
 
 Print GenerateDriveInformation(FSO) & NewLine & NewLine
 Print GenerateTestInformation(FSO) & NewLine & NewLine Print GetLyrics(FSO) & NewLine & NewLine DeleteTestDirectory(FSO)
 End Sub
 |