VBS_FileSystemObject讲解
一、FileSystemObject
的创建
' FileSystemObject对象的创建
Set WshShell=Wscript.CreateObject("Scripting.FileSystemObject")
FileSystemObject
对象的主要作用是用来操作文件
的
二、FileSystemObject
对象的属性和方法
-
属性
Drive[对象]:包含储存设备信息,包括硬盘、光驱、ram盘、网络驱动器 Drives[集合]:提供一个物理和逻辑驱动器的列表 File[对象]:检查和处理文件 FIles[集合]:提供一个文件夹中文件的列表 Folder[对象]:检查和处理文件夹 Folders[集合]:提供文件夹中子文件夹的列表 TextStream[对象]:读写文本文件
-
方法
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
对象文件/文件夹相关的操作
-
复制文件/文件夹
- Copy
Copy方法的使用教程:- 创建一个fso对象
- 使用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方法的使用教程- 创建一个fso对象
- 使用fso对象的
GetFile
方法得到一个文件或文件夹
Set file=fso.GetFile(文件的绝对路径)
- 使用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方法的使用教程- 创建一个fso对象
- 使用fso对象的
GetFolder
方法得到一个文件或文件夹
Set folder=fso.GetFolder(文件的绝对路径)
- 使用fso对象的
CopyFolder
方法来复制文件
file.CopyFolder(要复制到的文件的绝对路径)
Set fso=Wscript.CreateObject("Scripting.FileSystemObject") Set folder=fso.GetFoder("d:\VBSTestPath\MovePath") folder.CopyFolder "d:\VBSTestPath\newFolder\MovePath"
- Copy
注意:在复制的过程中还可以给文件/文件夹进行命名,在使用
Move
方法时,注意两个路径之间使用逗号
号分隔
-
移动文件/文件夹
-
Move
Move方法的使用教程- 创建一个fso对象
- 使用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方法的使用教程- 创建一个fso对象
- 使用fso对象的
GetFile
方法得到一个文件
Set filer=fso.GetFile(文件的绝对路径)
- 使用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方法的使用教程- 创建一个fso对象
- 使用fso对象的
GetFolder
方法得到一个文件夹
Set folderr=fso.GetFolder(文件夹的绝对路径)
- 使用fso对象的
MoveFolder
方法来复制文件夹
folder.MoveFolder(要复制到的文件夹的绝对路径)
' 移动文件夹 Set fso=Wscript.CreateObject("Scripting.FileSystemObject") Set folder=fso.GetFolder("d:\VBSTestPath\MoveFile") folder.MoveFolder "d:\VBSTestPath\newFolder"
-
-
删除文件/文件夹
- 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
-
判断文件/文件夹/驱动器是否存在
- 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 "该驱动器存在"
-
获取文件/文件夹的绝对路径/基本路径
- 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()
方法如果返回的是文件的话,则返回不包含扩展名的文件,如果返回的是文件夹,则返回的是文件夹的完整名称
-
创建文件/文件夹
- 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
编码方式编码文件
Unicode
和ASCll
编码方式的区别,在这里进行简单的介绍,在之后的教程里会进行各种编码方式的详细讲解和比较
ASCll
编码大小是一个字节,只有127个字符,一个字符的大小长度是一个字节Unicode
编码大小是两个字节(有些偏裨字4个字节),支持目前世界上各种语言的编码方式
接下来会讲到Drive对象的属性和方法