generateallfolderinformation
目的:
生成一个字符串,来描述一个文件夹和所有文件及子文件夹的当前状态。
示范下面的内容
– folder.path
– folder.subfolders
– folders.count
function generateallfolderinformation(folder)
dim s
dim subfolders
dim subfolder
dim files
dim file
s = "folder:" & tabstop & folder.path & newline & newline
set files = folder.files
if 1 = files.count then
s = 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 files
s = s & generatefileinformation(file)
next
end if
set subfolders = folder.subfolders
if 1 = subfolders.count then
s = 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 subfolders
s = s & generatefolderinformation(subfolder)
next
s = s & newline
for each subfolder in subfolders
s = s & generateallfolderinformation(subfolder)
next
end if
generateallfolderinformation = s
end function
generatetestinformation
目的:
生成一个字符串,来描述 c:\test 文件夹和所有文件及子文件夹的当前状态。
示范下面的内容
– filesystemobject.driveexists
– filesystemobject.folderexists
– filesystemobject.getfolder
function generatetestinformation(fso)
dim testfolder
dim s
if not fso.driveexists(testdrive) then exit function
if 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 testfolder
dim subfolder
dim file
有两种方法可用来删除文件:
fso.deletefile(testfilepath & "\beatles\octopusgarden.txt")
set file = fso.getfile(testfilepath & "\beatles\bathroomwindow.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
set textstream = folder.createtextfile("octopusgarden.txt")
textstream.write("octopus garden ") 请注意,该语句不添加换行到文件中。
textstream.writeline("(by ringo starr)")
textstream.writeblanklines(1)
textstream.writeline("id like to be under the sea in an octopus garden in the shade,")
textstream.writeline("hed let us in, knows where weve been — in his octopus garden in the shade.")
textstream.writeblanklines(2)
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 textstream
dim s
dim file
有多种方法可用来打开一个文本文件,和多种方法来从文件读取数据。
这儿用了两种方法来打开文件和读取文件:
set textstream = fso.opentextfile(testfilepath & "\beatles\octopusgarden.txt", openfileforreading)
s = textstream.readall & newline & newline
textstream.close
set file = fso.getfile(testfilepath & "\beatles\bathroomwindow.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:\test\readme.txt
c:\test\beatles
c:\test\beatles\octopusgarden.txt
c:\test\beatles\bathroomwindow.txt
示范下面的内容
– filesystemobject.driveexists
– filesystemobject.folderexists
– filesystemobject.createfolder
– filesystemobject.createtextfile
– folders.add
– folder.createtextfile
– textstream.writeline
– textstream.close
function buildtestdirectory(fso)
dim testfolder
dim subfolders
dim subfolder
dim textstream
排除(a)驱动器不存在,或(b)要创建的目录已经存在的情况。
if not fso.driveexists(testdrive) then
buildtestdirectory = false
exit function
end if
if fso.folderexists(testfilepath) then
buildtestdirectory = 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)
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
