欢迎光临
我们一直在努力

FSO系列之六**示例代码之详细代码2

建站超值云服务器,限时71元/月

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » FSO系列之六**示例代码之详细代码2
分享到: 更多 (0)