7、CreateTextFile方法
CreateTextFile方法创建一个新的文件并返回其TextStream对象,其语法为:
oFileSysObj.CreateTextFile Filename [,Overwrite[,Unicode]]
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数Filename必需,代表任何有效文件名,String类型。在Filename中不允许使用通配符。Filename可以是相对路径也可以是绝对路径,如果没有指定路径,则使用应用程序的当前驱动器或文件夹作为路径。如果指定的路径不存在,则该方法将失败。
参数Overwrite可选,作为一个标志,指定是否覆盖一个具有相同文件名的现有文件,Boolean类型。默认值为False。
参数Unicode可选,作为一个标志,指明用Unicode格式还是ASCⅡ格式写文件,Boolean类型。如果设置为True,则以Unicode格式创建文件,否则创建一个ASCⅡ文本文件。默认值为False。
只有写操作才能使新创建的文本文件自动打开,如果以后希望读取该文件,则必须选关闭它再以读模式重新打开该文件。
如果参数Filename中指定的路径设置为只读,则不论参数Overwrite的值如保,CreateTextFile方法都将失败。
如果用户有充分的权限,那么参数Filename可以是网络路径或共享名,例如:
CreateTextFile "\\NTSERV1\RootTest\myFile.doc"
必须使用Set语句将TextStream对象赋值给局部对象变量。
8、MoveFile方法
MoveFile方法用来移动文件,将文件从一个文件夹移动到另一个文件夹。其语法为:
oFileSysObj.MoveFile source,destination
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数source必需,指定要移动的文件的路径,String类型。参数destination必需,指定文件移动操作中的目标位置的路径,String类型。
如果Source包含通配符或者destination以路径分隔符结尾,则认为destination是一个路径,否则认为destination的最后一部分是文件名。
如果目标文件已经存在,则将出现一个错误。
source可以包含通配符,但只能出现在它的最后一部分中。
destination参数不能包含通配符。
source或destination可以是相对路径或绝对路径,可以是网络路径或共享名。
MoveFile方法在开始操作前先解析source和destination这两个参数。
9、DeleteFile方法
DeleteFile方法删除指定的一个或多个文件。其语法为:
oFileSysObj.DeleteFile FileSpec[,Force]
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数FileSpec必需,代表要删除的单个文件或多个文件的名称和路径,String类型,可以在路径的最后部分包含通配符,可以为相对路径或绝对路径。如果在FileSpec中只有文件名,则认为该文件在应用程序的当前驱动器和文件夹中。参数Force可选,如果将其设置为True,则忽略文件的只读标志并删除该文件,Boolean类型,默认值为False。
如果指定要删除的文件已经打开,该方法将失败并出现一个“Permission Denied”错误。如果找不到指定的文件,则该方法失败。
如果在删除多个文件的过程中出现错误,DeleteFile方法将立即停止删除操作,即不能删除余下的文件部分。该方法不具有撤销产生错误前文件删除操作的返回功能。
如果用户有充分的权限,源路径或目标路径可以是网络路径或共享名。例如:
DeleteFile “\\NTSERV1\RootTest\MyFile.doc”
DeleteFile方法永久性地删除文件,并不把这些文件移到回收站中。
示例
Sub DeleteFile()
Dim fs As FileSystemObject
Set fs = New FileSystemObject
fs.DeleteFile "C:\test.doc"
MsgBox "删除了该文件."
End Sub
10、DriveExists方法
DriveExists方法用来判断在本地计算机或者网络上是否存在指定的磁盘,若存在则返回True。其语法为:
oFileSysObj.DriveExists (DriveSpec)
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数DriveSpec必需,代表路径或驱动器名,String类型。如果DriveSpec是一个Windows驱动器名,则其后面不需要跟冒号,例如“C”和“C:”是一样的。
DriveExists方法不能返回可移动驱动器的当前状态,要实现这一目的,必须使用指定驱动器的IsReady属性。
如果用户有充分的权限,DriveSpec可以是网络路径或共享名,例如:
If ofs.DriveExists("\\NTESERV1\d$") Then
在调用位于某驱动器上一个远程ActiveX服务器中的函数前,最好先使用DriveExists方法检测网络上是否存在该驱动器。
示例
Function DriveExists(disk)
Dim fs As Object
Dim strMsg As String
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.DriveExists(disk) Then
strMsg = "驱动器" & UCase(disk) & "盘已存在."
Else
strMsg = UCase(disk) & "盘未找到."
End If
DriveExists = strMsg
End Function
11、GetDrive方法
GetDrive方法返回Drive对象,即获得对指定驱动器的Drive对象的引用。其语法为:
oFileSysObj.GetDrive (drivespecifier)
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数drivespecifier必需,代表驱动器名、共享名或网络路径,String类型。如果drivespecifier是一个共享名或网络路径,GetDrive确认它是Drive对象创建进程的一部分,否则会产生运行时错误“找不到路径”。如果指定的驱动器没有连接上或者不存在,则会出现运行时错误“设备不可用”。
如果要从路径中导出drivespecifier字符串,应该首先用GetAbsolutePathName来确保驱动器是路径的一部分,然后在调用GetDriveName从全限定路径中提取出驱动器之前,用FolderExists方法检验路径是否有效,例如:
Dim oFileSys As New FileSystemObject
Dim oDrive As Drives
Path=oFileSys.GetAbsolutePathName(sPath)
If oFileSys.FolderExists(sPath) Then
set oDrive=oFileSys.GetDrive(oFileSys.GetDriveName(sPath))
End If
如果driverspecifier是一个网络驱动器或共享,在调用GetDrive方法之前,应该用DriveExists方法检验所需的驱动器是否可用。
必须用Set语句将Drive对象赋给局部对象变量。
示例
Sub DriveInfo()
Dim fs, disk, infoStr, strDiskName
strDiskName = InputBox("输入驱动器盘符:", "驱动器名称", "C:\") Set fs = CreateObject("Scripting.FileSystemObject")
Set disk = fs.GetDrive(fs.GetDriveName(strDiskName))
infoStr = "驱动器:" & UCase(strDiskName) & vbCrLf
infoStr = infoStr & "驱动器盘符:" & UCase(disk.DriveLetter) & vbCrLf
infoStr = infoStr & "驱动器类型:" & disk.DriveType & vbCrLf
infoStr = infoStr & "驱动文件系统:" & disk.FileSystem & vbCrLf
infoStr = infoStr & "驱动器系列号:" & disk.SerialNumber & vbCrLf
infoStr = infoStr & "字节的总大小:" & FormatNumber(disk.TotalSize / 1024, 0) & "kb" & vbCrLf
infoStr = infoStr & "驱动器中的自由空间:" & FormatNumber(disk.FreeSpace / 1024, 0) & "kb" & vbCrLf
MsgBox infoStr, vbInformation, "驱动器信息"
End Sub
12、GetDriveName方法
GetDriveName方法返回一个包含硬盘名称或者网络共享名称的字符串。即返回给定路径的驱动器名,如果从给定的路径中不能确定驱动器名,则返回一个零长字符串(””)。其语法为:
oFileSysObj.GetDriveName (Path)
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数Path必需,指定路径,String类型。
GetDriveName不能检验Path中是否存在指定的驱动器。Path可以是网络驱动器或共享。
示例
Function DriveName(disk)
Dim fs As Object
Dim strDiskName As String
Set fs = CreateObject("Scripting.FileSystemObject")
strDiskName = fs.GetDriveName(disk)
DriveName = strDiskName
End Function
13、GetExtensionName方法
返回给定路径中文件的扩展名。其语法为:
oFileSysObj.GetExtensionName (Path)
其中,oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。参数Path必需,表示路径说明,String类型。如果不能确定Path中的扩展名,则返回一个零长字符串。
GetExtensionName方法不能检验Path是否有效,Path可以为网络路径或共享。GetExtensionName没有智能功能,它简单地解析一个字符串,并返回Path最后部分中最后一个点后的文本。