VBScript常见文件操作


关键词

VBScript常见文件操作

摘要

VBScript常见文件操作

     

与文件和文件夹操作有关的对象叫做FSO,与文件读写有关的对象叫做TextStream

1、TextStream的常用方法:

object.ReadLine                '读取一行内容
object.ReadAll                 '读取文件中所有内容
object.WriteLine               '写一行内容
object.Write(文本内容)         '写入指定的字符串
object.Close                   '关闭文件
以上是比较常用的

object.Read(个数)              '读取指定个数的字符
object.SkipLine                '跳过文件中一行
object.Skip(个数)              '跳过指定个数的字符SkipLine 方法
注意:TextStream对文件只可以从上往下读取,指针无法任意定位,也无法往回走。

-------------------------------------------------------

2、FSO的常用方法:

fso.OpenTextFile(path,[mode,create,encoding])    '打开一个文本文件
mode--模式,缺省为只读方式打开
ForReading=1   以只读方式打开
ForWriting=2   以读写方式打开
ForAppending=8 以附加方式打开
create--不存在时是否创建缺省为否,即不创建文件
encoding--何种方式打开,缺省以ASCII方式
TristateUseDefault=-2 以系统默认方式打开
TristateTrue=-1       以Unicode方式打开
TristateFalse=0       以ASCII方式打开

fso.CreateTextFile(path,[overrwite,unicode])       '创建一个文本文件
overrwite--是否覆盖,缺省为是
unicode--是否以Unicode方式创建,缺省为false,即以ASCII方式创建

fso.FileExists(path)                         '判断文件是否存在,返回结果为真或假
fso.FolderExists(path)                       '判断文件夹是否存在,返回结果为真或假
fso.GetFile(path)                            '获得指定路径下文件的File对象
fso.GetFolder(path)                          '获得指定路径下目录的Folder对象
以上是非常常用的

fso.CreateTextFile(path)                     '创建一个文件
fso.CreateFolder(path)                       '创建一个文件夹
fso.MoveFile(src,dst)                        '移动文件,如果目标有同名文件则会有报错提示文件已存在,可以通过该方法给文件改名
fso.MoveFolder(src,dst)                      '用法同MoveFile
fso.CopyFile(src,dst,[overwrite])            '复制文件,其中overwrite表示文件存在时是否替换,默认为true
fso.CopyFolder                               '用法同CopyFile
fso.DeleteFile(path,[force])                 '删除文件,其中force表示是否删除只读文件,默认为false
fso.DeleteFolder(path,[force])               '用法同DeleteFile
fso.GetAbsolutePathname(path)                '得到文件的绝对路径
以上是较常用的

fso.GetParentFolderName(path)                '得到文件的父目录
fso.GetFileName(path)                        '得到文件的文件名
fso.GetBaseName(path)                        '得到文件的不带扩展名的那个文件名
fso.GetExtensionName(path)                   '得到文件的扩展名

备注:上面参数中的path,有时指文件或文件夹名,有时指文件或文件夹所在的绝对路径,有时指文件或文件夹对象

-------------------------------------------------------

3、File/Folder对象的属性方法:

File属性:
object.Name                      '文件名称,该属性可读写
object.Size                      '文件大小,以字节计
object.Path                      '文件路径
object.Attributes                '表示文件的属性,用各个二制位置位组合表示。1标识只读,2标识隐藏,4标识系统。该属性部分位可读写
object.DateCreated               '文件创建时间,该属性只读
object.DateLastAccessed          '最近访问时间,该属性只读
object.DateLastModified          '最后修改时间,该属性只读
object.ParentFolder              '父文件夹,该属性只读

File方法:
object.Copy(dst,[overwrite])     '复制文件,overwrite表示目标文件存在时是否覆盖,默认为true
object.Move(dst)                 '移动文件,如果目标有同名文件则会有报错提示文件已存在
object.Delete([force])           '删除文件,force表示是否删除只读文件,默认为false

Folder与File对象的属性和方法基本一样,以下是多出的内容
object.Count                     '目录下的项目数,该属性只读
object.Files                     '得到目录下的所有文件对象集合
object.SubFolders                '得到目录下的所有文件夹对象集合

-------------------------------------------------------

4、常见用法示例:

读取一个文本文件中所有内容:
Set fso = CreateObject("Scripting.FileSystemObject")    '创建FSO对象
If fso.FileExists("test.txt") Then                      '判断文件是否存在
        Set file = fso.OpenTextFile("test.txt")         '打开文件
Else
        MsgBox "文件不存在"
        Wscript.Quit                                    '退出程序
End If
If Not file.AtEndOfStream Then content = file.readall() '在读数据之前要判断一下文件是否到末尾,否则打开空文件时会有错.也可以用atendofstream作为循环的结束条件
file.close                                              '关闭文件,否则文件会一直被占用
Set file = Nothing
Set fso = Nothing

递归删除指定目录下的所有最后修改时间早于指定天数指定后缀的文件:
dirPath = "D:\123"
suffix = "txt"                    '文件后缀
olderThan = 3                     '早于该天数的文件

Set fso = CreateObject("Scripting.FileSystemObject")
Set dirObj = fso.GetFolder(dirPath)
deleteFile dirObj,olderthan,suffix

Function deleteFile(dirObj,olderthan,suffix)
        If dirObj.subfolders.count = 0 Then
                        Exit Function
        Else
                For Each folder In dirObj.SubFolders
                        deleteFile folder,olderthan,suffix
                Next
                For Each file In dirObj.Files
                        If( LCase(fso.GetExtensionName(file))=LCase(suffix) And DateDiff("d",file.DateLastModified,Date)>olderThan ) Then file.Delete
                Next
        End If
End Function

 

 

 

 

 

 


 

 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:VBScript常见文件操作:http://www.splaybow.com/post/vbscript-file-operate.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« VBScript常用操作 ASP中正则表达式介绍 »

相关文章: