VBS之FileSystemObject对象详解

VBS_FileSystemObject讲解

一、FileSystemObject的创建

' FileSystemObject对象的创建
Set WshShell=Wscript.CreateObject("Scripting.FileSystemObject")

FileSystemObject对象的主要作用是用来操作文件

二、FileSystemObject对象的属性和方法

  1. 属性

    Drive[对象]:包含储存设备信息,包括硬盘、光驱、ram盘、网络驱动器
    Drives[集合]:提供一个物理和逻辑驱动器的列表
    File[对象]:检查和处理文件
    FIles[集合]:提供一个文件夹中文件的列表
    Folder[对象]:检查和处理文件夹
    Folders[集合]:提供文件夹中子文件夹的列表
    TextStream[对象]:读写文本文件
    
  2. 方法

    BuildPath:把文件路径信息添加到现有的文件路径上
    Copy: 复制文件或文件夹
    CopyFile: 复制文件
    CopyFolder: 复制文件夹
    Delete: 删除文件或文件夹
    DeleteFile: 删除文件
    DeleteFolder: 删除文件夹
    Move: 移动文件或文件夹
    MoveFile: 移动文件
    MoveFolder: 移动文件夹
    GetFile: 获取文件
    GetFolder: 获取文件夹
    GetAbsolutePathName: 得到文件或文件夹的绝对路径
    GetBaseName: 得到文件或文件夹的基本路径
    GetDrive: 得到驱动器
    GetDriveName: 获取驱动器的名称
    GetFileName: 获取文件的完整文件名(包括扩展名)
    GetParentFolderName: 得到子文件夹的父文件夹的路径
    GetExtensionName: 得到文件的扩展名/后缀名
    FileExists: 判断文件是否存在
    FolderExists: 判断文件夹是否存在
    DriveExists: 判断驱动器是否存在
    CreateFile: 创建一个文件
    CreateFolder: 创建一个文件夹
    GetSpecialFolder: 返回一个指向一个特殊文件夹的对象指针
    GetTempName: 返回一个可以被cratetextfile使用的随机产生的文件或文件夹的名称
    OpenTextFile: 打开一个文件文件,并对其进行读写追加等操作
    

此篇主要讲解的是文件/文件夹相关的操作,包括文件/文件夹的复制、移动、删除、判断是否存在等

三、FileSystemObject对象文件/文件夹相关的操作

  1. 复制文件/文件夹

    • Copy
      Copy方法的使用教程:
      1. 创建一个fso对象
      2. 使用fso对象的Copy方法
        fso.Copy 文件的绝对路径 文件要复制到的绝对路径
    ' 复制文件
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    fso.Copy "d:\VBSTestPath\vbs.txt","d:\VBSTestPath\newFolder\vbs.vbs"
    ' 复制文件夹
    fso.Copy "d:\VBSTestPath\MovePath","D:\VBSTestPath\newFolder\MovePath"
    
    • CopyFile
      CopyFile方法的使用教程
      1. 创建一个fso对象
      2. 使用fso对象的GetFile方法得到一个文件或文件夹
        Set file=fso.GetFile(文件的绝对路径)
      3. 使用fso对象的CopyFile方法来复制文件
        file.CopyFile(要复制到的文件的绝对路径)
    ' 复制文件操作
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    Set file=fso.GetFile("d:\VBSTestPath\vbs.txt")
    file.CopyFile "d:\VBSTestPath\newFolder\vbs.vbs"
    
    • CopyFolder
      CopyFolder方法的使用教程
      1. 创建一个fso对象
      2. 使用fso对象的GetFolder方法得到一个文件或文件夹
        Set folder=fso.GetFolder(文件的绝对路径)
      3. 使用fso对象的CopyFolder方法来复制文件
        file.CopyFolder(要复制到的文件的绝对路径)
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    Set folder=fso.GetFoder("d:\VBSTestPath\MovePath")
    folder.CopyFolder "d:\VBSTestPath\newFolder\MovePath"
    

注意:在复制的过程中还可以给文件/文件夹进行命名,在使用Move方法时,注意两个路径之间使用逗号号分隔

  1. 移动文件/文件夹

    • Move
      Move方法的使用教程

      1. 创建一个fso对象
      2. 使用fso对象的Move方法
      ' 移动文件
      Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
      fso.Move "d:\VBSTestPath\MoveFile\vbs.txt","d:\VBSTestPath\newFolder\vbs.vbs"
      ' 移动文件夹
      fso.Movw "d:\VBSTestPath\MoveFile","d:\VBSTestPath\newFolder\MoveFile"
      
    • MoveFile
      MoveFile方法的使用教程

      1. 创建一个fso对象
      2. 使用fso对象的GetFile方法得到一个文件
        Set filer=fso.GetFile(文件的绝对路径)
      3. 使用fso对象的MoveFile方法来复制文件
        file.MoveFile(要复制到的文件的绝对路径)
      ' 移动文件
      Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
      Set file=fso.GetFile("d:\VBSTestPath\vbs.txt")
      file.MoveFile "d:\VBSTestPath\MoveFile\vbs.vbs"
      
    • MoveFolder
      MoveFolder方法的使用教程

      1. 创建一个fso对象
      2. 使用fso对象的GetFolder方法得到一个文件夹
        Set folderr=fso.GetFolder(文件夹的绝对路径)
      3. 使用fso对象的MoveFolder方法来复制文件夹
        folder.MoveFolder(要复制到的文件夹的绝对路径)
      ' 移动文件夹
      Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
      Set folder=fso.GetFolder("d:\VBSTestPath\MoveFile")
      folder.MoveFolder "d:\VBSTestPath\newFolder"
      
  2. 删除文件/文件夹

    • Delete
    • DeleteFile
    • DeleteFolder
    ' 创建一个fso对象
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    ' Delete方法删除文件或文件夹
    fso.Delete "d:\VBSTestPath\vbs.txt"
    fso.Delete "d:\VBSTestPath\newFolder"
    ' DeleteFile方法删除文件
    Set file=fso.GetFile("d:\VBSTestPath\vbs.txt")
    file.DeleteFile
    ' DeleteFolder方法删除文件夹
    Set folder=fso.GetFolder("d:\VBSTestPath\MoveFile")
    folder.DeleteFolder
    
  3. 判断文件/文件夹/驱动器是否存在

    • FileExists
    ' 判断文件是否存在
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    if fso.FileExists("d:\VBSTestPath\vbs.txt")  then msgbox "文件存在"
    
    • FolderExists
    ' 判断文件夹是否存在
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    if fso.FolderExists("d:\VBSTestPath\newFolder") then msgbox "文件夹存在"
    
    • DriveExists
    ' 判断驱动器是否存在
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    if fso.DriveExists("d:") then msgbox "该驱动器存在"
    
  4. 获取文件/文件夹的绝对路径/基本路径

    • GetAbsolutePathName
    ' 获取文件/文件夹的绝对路径
    dim fileabsolutepath
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    fileabsolutepath=fso.GetAbsolutePathName(Wscript.ScriptFullName)
    msgbox fileabsolutepath
    
    • GetBaseName
    ' 获取文件/文件夹的机泵路径
    dim filebasepath,folderbasepath
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    filebasepath=fso.GetBasePath(Wscript.ScriptFullName)
    folderbasepath=fso.GetBasePath("d:\VBSTestPath")
    msgbox "文件的基本路径为:"&filebasepath&vbCrlf&"文件夹的基本路径为:"&folderbasepath
    

在这里的Wscript.ScriptFullName表示的是该vbs脚本所在目录的绝对路径,GetBasePath()方法如果返回的是文件的话,则返回不包含扩展名的文件,如果返回的是文件夹,则返回的是文件夹的完整名称

  1. 创建文件/文件夹

    • CreateTextFile
    ' 创建一个文件
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    Set file=fso.CreateTextFile("d:\VBSTestPath\vbs.txt")
    file.Write "这是一个新创建的文件"
    file.close
    
    • CreateFolder
    ' 创建一个文件夹
    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    fso.CreateFolder("d:\VBSTestPath\newFolder")
    

CreateTextFile()方法有三个参数,第一个参数表示的是要创建的文件的路径,第二个参数表示的是如果文件已经存在了,是否覆盖掉文件,True表示的是覆盖掉文件,False表示的是不覆盖文件,第三个参数表示的是以什么编码方式来编码文件,有Unicode编码和ASCll编码两种方式,True表示的是以Unicode编码方式编码文件,False表示的是以ASCll编码方式编码文件

UnicodeASCll编码方式的区别,在这里进行简单的介绍,在之后的教程里会进行各种编码方式的详细讲解和比较

ASCll编码大小是一个字节,只有127个字符,一个字符的大小长度是一个字节Unicode编码大小是两个字节(有些偏裨字4个字节),支持目前世界上各种语言的编码方式

接下来会讲到Drive对象的属性和方法

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值