给大家介绍个实用的对象
本文由按键学院提供技术支持
按键学院交流群(1群已满):376122403
零基础学按键精灵群(2群):372671254
今天的院刊给大家介绍一个对象——VBS对象。什么是VBS对象呢? 简单的来说VBS对象就像一个大的仓库,VBS有很多不同的对象,每个对象就是不同的分类,每个分类下一些方法或者属性,可以很便捷的实现按键精灵本身无法实现的功能。 那今天就先给大家介绍其中一种对象,FileSystemObject 对象,我们可以利用他很便捷对电脑上的文件和文件夹进行操作,并且可以获取到文件的相关信息 |
要了解FileSystemObject 对象我们首先要知道下FSO这个东西。
FSO就是VBS的文件系统对象,这个对象里有包含了
Drive、
Folder、
File、
FileSystemObject和
TextStream五个对象。这几个对象就集成了基本上所有对文件以及文件夹的操作。
我们这次就先给大家介绍 FileSystemObject 这个对象的一些使用方法。这个对象是FSO里的很重要也是很常用的一个对象,他包含了对文件以及文件夹还有收集文件信息的一些方法。
接下来让我们来学习下这个对象的使用方法以及给大家介绍一些使用的代码范例读取、写入文件看到这个功能,可能很多童鞋或不屑一顾,这个读取和写入文件的命令按键精灵本身也有,干嘛还要费劲的学这个VBS的对象?
按键精灵本身确实也有读取文件的命令,但是他有一个致命的缺陷。就是在读取多行内容的时候会自动把每行的内容使用“|”符号进行分割,当我们需要分别提取出每行的内容的时候就需要这样写代码
- Path = "c:\ajjl.txt"
- Text = Plugin.File.ReadFileEx(Path)
- TextEx = split(Text, "|")
- For i = 0 To UBound(TextEx) -1
- TracePrint TextEx(i)
- Next
复制代码 这样写看上去是不会有什么问题,但是如果文本里的单独一行内容有包含“|”这个符号的话,那最终的提取结果就会发生改变。嘿嘿,这就要靠 FileSystemObject 对象来解决这个问题了。
通过这个对象读取出来的文件信息,
每行内容会以回车换行符来分隔,就不会产生这种干扰的问题了。好了,不多说废话,直接上代码
- Path = "c:\ajjl.txt"
- Set fso = CreateObject("Scripting.FileSystemObject") //首先需要创建一个对象
- Set fileobj = fso.OpenTextFile(Path, 1, False) //打开文件以便后续操作
- ReadFile = fileobj.ReadAll //读取文件内容
- MessageBox ReadFile
- Call fileobj.Close() //关闭文件
- Set fso = Nothing //清空对象,释放系统资源
- Set fileobj = Nothing
- TextEx = split(ReadFile, vbcrlf) //使用vbcrlf换行符进行分割
- For i = 0 To UBound(TextEx)
- TracePrint TextEx(i)
- Next
复制代码命令名称 | OpenTextFile |
命令功能 | 打开指定的文件并返回一个 TextStream 对象,以便对文件进行读写操作 |
命令参数 | filename 指明要打开的文件名称。 iomode 输入/输出模式: 1 表示已只读模式打开,无法写入文件; 2 表示以写方式打开文件; 8 表示打开文件并从文件末尾开始写 create Boolean 值,指出当指定的 filename 不存在时是否能够创建新文件,允许创建新文件时为 True,否则为 False format 指出以何种格式打开文件 TristateTrue 以 Unicode 格式打开文件。 TristateFalse 以 ASCII 格式打开文件。 TristateUseDefault 使用系统默认值打开文件 |
遍历指定文件夹的文件FileSystemObject对象不单只能读写文件,还能获取到文件的一些信息,比如说创建日期什么的。
下面这段代码就可以实现遍历所有符合条件的文件
- Function 遍历指定目录下所有文件名(文件夹路径,后缀名,最旧时间,特定字符串)
- Dim 文件名,fso,folder,f,files,arr1
- 文件名 = ""
- Set fso = CreateObject("Scripting.FileSystemObject")//创建对象
- Set folder = fso.getfolder(文件夹路径) //获取系统中指定的文件夹信息
- Set files = folder.files//获取文件夹内的文件名字
- For Each f In files //遍历files对象中每个元素(既是每个文件)
- arr1 = split(f.name, ".") //f.name指的是文件的名字
- 时间 = f.DateCreated //获取到文件的创建日期
- If arr1(UBound(arr1)) = 后缀名 and 时间 > 最旧时间 and instr(f.name, 特定字符串) = 0 Then
- 文件名 = 文件名 & f.name & "|"
- End If
- Next
- Set fso = Nothing
- 遍历指定目录下所有文件名 = Split(文件名, "|")
- End Function
复制代码 院刊目录showtopic.aspx?topicid=549014&forumpage=1&page=1
谢谢大家阅读,记得给小编送支花花 ! 顺手点个赞
[tr=rgb(143, 188, 143)] | 按键精灵免费公开课 | 实战班:回合制通用教学火热报名 |
【听课对象】:对按键精灵感兴趣的同学们都可以来~ 【上课地点】:零基础学按键精灵群(372671254) 【上课时间】:周天晚上19:30-21:00 【上课内容】:按键精灵脚本基础经验谈——图色命令
| 本期重点:回合制游戏--神武 学习时效:终生有效 上课时间:周2、周4、周6的 20:00--22:00 导师:工程师07 技术支持:果儿(院刊编辑) |
点我进入按键学院报名啦 招生细节进群咨询招生办主任:2群-372671254(优先加入) 1群-376122403
|