FileSystemObject (FSO)对象方法总结及应用

FileSystemObject (FSO)组件可以用来处理系统驱动器,文件夹,和文件。因为它是一个ActiveX控件,所以它能被js,vbs等文件使用,以实现对机器文件系统的操作。

下面将总结一下FSO中的对象和方法,其实FSO中大多数的方法都能顾名思义,很简单,所以对于大多数函数都只是简单的罗列一下。

一.新建FileSystemObject对象
var fso = new ActiveXObject("Scripting.FileSystemObject");
注意:FileSystemObject对象只能创建一次!


二.FileSystemObject对象下的相关函数
1.Driver相关:
DriveExists(drivespec):判断驱动器是否存在,参数可以是"C","C:","C:\","\\computer\share"等形式
GetDrive ( drivespec ):获取Driver对象,获取后可以对该对象进行更进一步的操作,参数可以是"C","C:","C:\","\\computer\share"等形式
GetDriveName(path):获取一个地址的驱动名,这个函数只关注path字符串,不关注该路径是否存在
Drives属性:获取所有的driver

2.Folder相关:
FolderExists(folderspec):判断Folder是否存在
CreateFolder(foldername):创建Folder,并返回Folder对象
GetFolder(folderspec):获取Folder对象,获取后可以对该对象进行更进一步的操作
DeleteFolder ( folderspec[, force] ):删除Folder,默认情况下不会删除只读文件夹,但是可以通过将force设为true来删除只读文件夹.
CopyFolder ( source, destination[, overwrite] ):复制文件夹.当overwrite为true时会覆盖原有的文件夹。有如下几种复制方法。
a.当source只是一个简单的路径,且destination后面不以"\"结束时,将新建destination文件夹,并将source下的文件都拷贝到destination下。
filesys.CopyFolder("c:\\test1","c:\\test3");
拷贝test1下的文件到test3,如果test3文件夹不存在将先新建test3文件夹。
b.当source只是一个简单的路径,且destination后面以"\"结束时,将认为destination文件夹已经存在,并将source文件夹拷贝到destination下。
filesys.CopyFolder("c:\\test1","c:\\test2\\");
拷贝test1到test2文件夹下,如果test2文

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是优化后的代码: ``` ' 引用外部库 Option Explicit Sub ConvertExcelToPDF() '文件夹路径 Dim folder_path As String folder_path = "C:\Users\Administrator\Desktop\pr\2\5E2206172401600E" '判断文件夹是否存在 If Len(Dir(folder_path, vbDirectory)) = 0 Then MsgBox "路径不存在!" Exit Sub End If '创建Excel应用程序对象 Dim excel_app As Object Set excel_app = CreateObject("Excel.Application") '遍历文件夹下的所有文件 Dim file As Object For Each file In CreateObject("Scripting.FileSystemObject").GetFolder(folder_path).Files '判断文件是否是Excel文件 If LCase(Right(file.Name, 4)) = "xlsx" Or LCase(Right(file.Name, 3)) = "xls" Then '尝试打开Excel文件并将其转换为PDF格式 On Error Resume Next With excel_app.Workbooks.Open(file.Path) .ExportAsFixedFormat 0, Replace(file.Path, ".xlsx", ".pdf") .Close False End With On Error GoTo 0 End If Next file '释放Excel应用程序对象 excel_app.Quit Set excel_app = Nothing '显示执行结束的消息框 MsgBox "执行结束!" End Sub ``` 优化说明: 1. 将Scripting.FileSystemObject对象的创建移至代码中,避免了多次创建对象的开销。 2. 使用Dir函数代替Scripting.FileSystemObject对象的FolderExists方法,避免了创建另一个对象的开销。 3. 将Excel应用程序对象和工作簿对象的创建和释放放在处理Excel文件的代码块内,避免了在遍历文件时创建和释放这些对象的开销。 4. 增加Option Explicit语句,强制声明变量类型,避免了变量类型错误的开销。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值