文章目录

  • 1、Folder对象
    • 1.1、Attributes属性
    • 1.2、DateCreated属性
    • 1.3、DateLastAccessed属性
    • 1.4、DateLastModified属性
    • 1.5、Drive属性
    • 1.6、Files属性
    • 1.7、IsRootFolder属性
    • 1.8、ParentFolder属性
    • 1.9、Path属性
    • 1.10、Size属性
    • 1.11、SubFolders属性
    • 1.12、Type属性
    • 1.13、Copy方法
    • 1.14、CreateTextFile方法
    • 1.15、Delete方法
    • 1.16、Move方法
  • 2、Folders集合
    • 2.1、Item属性
    • 2.2、Count属性
    • 2.3、Add方法

1、Folder对象

  • 使用Folder对象可以访问指定文件夹的所有属性,并提供了复制、移动和删除文件夹的方法,还可以在文件夹内新建一个文本文件。
  • Folder对象的重要性在于可以通过它访问Folders集合对象。
  • 最常用的方法是提取集合中的一个成员以访问某个对象。然而,由于Drive对象在根文件夹仅给出了Folder对象,因此不得不从Folder对象(表示根文件夹中子文件夹的集合)中提取Folders集合对象。利用Folders集合,可以向下搜索整个文件系统以选择其他Folder对象和其他Folders集合。
  • IsRootFolder参数将告诉当前正在处理的Folder对象是否是Drive的根文件夹。

1.1、Attributes属性

  • 返回文件夹的属性。
    FileAttributes常量(参见下表),一组表示文件夹属性的标志。通过对Attributes返回值和要测试的常量值进行逻辑与(AND)可以确定设置了哪一个标志。例如:
If oFolder.Attributes And ReadOnly Then '文件夹是只读的

表:FileAttributes常量

常数
Alias 64
Archive 32
Compressed 2048
Directory 16
Hidden 2
ReadOnly 1
System 4
Volume 8

1.2、DateCreated属性

返回文件夹的创建日期,Date类型。

1.3、DateLastAccessed属性

如果可以从操作系统获得时间信息,则属性表示最近一次访问文件夹的日期,Date类型。

1.4、DateLastModified属性

最近一次修改文件夹的日期,Date类型。

1.5、Drive属性

返回一个Drive对象,表示该文件夹所在的驱动器名称。

1.6、Files属性

返回文件夹中的文件集合,表示当前文件夹中的所有文件。

1.7、IsRootFolder属性

IsRootFolder属性判断文件夹是否为根文件夹,如果是则返回True,Boolean类型。
Name属性
返回文件夹的名称,String类型。

1.8、ParentFolder属性

返回指定文件夹的父文件夹。如果当前文件夹是它所在驱动器的根文件夹,则该属性无效。

1.9、Path属性

返回文件夹的完整路径,String类型。

1.10、Size属性

返回文件夹的大小,以字节表示。包含当前文件夹中所有文件、子文件夹及其内容的全部大小,Variant类型。

1.11、SubFolders属性

返回文件夹中的子文件夹的集合,表示当前文件夹内的所有子文件夹。

1.12、Type属性

返回文件夹的类型,例如文件夹或者回收站。该属性并未完全实现,总是返回“File Folder”,String类型。

1.13、Copy方法

  • 将当前文件夹及其内容(包括其他文件夹)复制到另一个位置,
  • 其语法为:oFolderObj.Copy Destination[,OverwriteFiles]
  • 其中,oFolderObj代表任何能够返回Folder对象的对象变量。
  • 参数Destination必需,表示文件夹复制中的目标路径(可包含文件名),String类型,不能在其中使用通配符。
  • 参数OverwriteFiles可选,表示是应该覆盖(True)还是不覆盖(False)已存在的文件和文件夹,Boolean类型。
  • Copy方法将源文件夹中包含的文件夹、所有子文件夹和文件复制到Destination位置,也就是说,Copy方法是递归的。
  • Folder.Copy方法与FileSystemObject.CopyFolder方法不同,对于使用路径分隔符还是非路径分隔符结束Destination,在操作上都是相同的。
  • 如果目标路径或者Destination结构中的任何一个文件设置为只读,则不论OverwriteFiles的值如何,Copy方法都将失败。
  • 如果OverwriteFiles设置为False,且Destination结构中包含源文件夹或源文件夹中的任意一个文件,将产生错误“文件已经存在”。
  • 如果在复制多个文件时出现错误,Copy方法立即停止操作,不再复制剩下的未复制的文件。该方法不具有撤销产生错误之前复制操作的返回功能。
  • 如果用户有充分的权限,Destination可为网络路径或共享名。

1.14、CreateTextFile方法

  • 在指定位置新建一个文件,并返回所创建文件的TextStream对象。

  • 其语法为:oFolderObj.CreateTextFile FileName[,Overwrite[,Unicode]]

  • oFolderObj代表任何能够返回Folder对象的对象变量。

  • 参数FileName必需,表示任何有效的文件名(路径可选),String类型,不允许使用通配符。

  • 参数Overwrite可选,一个标志,表示是否覆盖具有相同文件名的已有文件,Boolean类型,默认设置为False。

  • 参数Unicode可选,一个标志,表示是用Unicode格式还是ASCⅡ格式写文件,默认设置为False。如果Unicode设置为True,将创建一个Unicode格式的文件,否则创建一个ASCⅡ文本文件。

  • 新建的文本文件只有在进行写操作时才自动打开。如果随后要读这个文件,必须先关闭这个文件,然后以读模式打开该文件。

  • 必须使用Set语句把TextStream对象赋给一个局部对象变量。

  • Folder对象中的CreateTextFile方法与FileSystemObject对象中的CreateTextFile方法在操作上是一样的。

1.15、Delete方法

  • 删除当前文件夹及其所有文件和子文件夹。
  • 其语法为:oFolderObj.Delete [Force]
  • oFolderObj代表任何能够返回Folder对象的对象变量。
  • 参数Force可选,如果设置为True,则忽略文件的只读标志并删除这个文件,Boolean类型,默认设置为False。
  • 如果文件夹中某些文件已经打开,该方法失败并产生一个“Permission Denied”错误。
  • Delete方法删除指定文件夹中的所有内容,包括其他文件夹和它们的内容。
  • 如果参数Force设置为False,且文件夹中的任一文件设置为只读,则该方法失败。
  • 如果在删除多个文件或文件夹时出错,Delete方法立即停止操作,不再删除余下没有删除的文件或文件夹,该方法不具有撤销出错前删除操作的返回功能。
  • Folder对象的Delete方法与FileSystemObject的DeleteFolder方法不同,后者可以在路径参数中使用通配符,因而能同时删除多个文件夹,而前者只是删除Folder对象所表示的一个文件夹。
  • 执行完Delete方法后,包含Folder对象的Folders集合对象会自动更新。
  • 从Folders集合中移除被删除的文件夹,且集合的计数减一。
  • 不应再访问已删除的文件夹,应该设置局部对象变量为Nothing,例如下面的代码所示:
Set objFolder=objFolders.Item("roottwo")
MsgBox objFolders.Count
objFolder.Delete False
MsgBox objFolders.Count
Set objFolder=Nothing

1.16、Move方法

  • 将文件夹结构从某个位置移动到另一个位置。
  • 其语法为:oFolderObj.Move destination
  • oFolderObj代表任何能够返回Folder对象的对象变量。
  • 参数destination必需,指定文件夹移动操作中目标位置的路径,String类型,不能使用通配符,可以为绝对路径或相对路径。
  • 在移动文件夹时,如果其中的某些文件已经打开,则将产生一个错误。
  • 如果在移动操作的过程中出错,Move方法将立即停止操作,且不再移动剩下的文件和文件夹。
  • 要保证该方法能够完成,可以在调用它之前使用FileSystemObject的FolderExists和GetAbsolutePath方法。
  • Folder.Delete方法和FileSystemObject的MoveFolder方法不同,后者可以在路径参数中使用通配符,所以能够同时移动多个文件夹,而前者只是删除Folder对象表示的一个文件夹及其内容。
  • 执行完Move方法后,包含Folder对象的Folders集合对象会立即自动更新:从集合中移除刚被删除的文件夹,集合计数减一。不应该再访问同一Folders集合对象中已经删除的文件夹。
    如果用户有足够的权限,目标路径可以是网络路径或共享名

2、Folders集合

  • Folders集合对象是Folder对象的容器。通常我们希望从对象所在的集合访问某个对象。
  • 例如,我们可能希望从Folders集合对象访问一个Folder对象。然而,情况也可以反过来,我们可以从一个Folder对象的实例访问Folders集合对象。
  • 这是因为从Drive对象创建实例的第一个Folder对象是一个Root Folder(根文件夹)对象,从该对象可以实例化一个子文件夹集合。然后又能够实例化其他Folder对象和子文件夹对象,这样就能操作整个驱动器的文件系统。

2.1、Item属性

  • 从Folders集合对象检索一个特定的Folder对象,可以通过提供的准确的文件夹名来访问某个文件夹,而不需要知道它的路径。但是,不能通过顺序号来访问该文件夹对象,
  • 例如下面的语句返回一个表示root文件夹的Folder对象:
Set objFolder=objFolders.Item("root")

2.2、Count属性

  • Folders集合包含的Folder对象的数目,Long类型。

2.3、Add方法

  • 新建一个文件夹。
  • 其语法为:oFoldersCollObj.Add newfoldername
  • oFolderCollObj代表任何能够返回Folders集合对象的对象变量。
  • 参数newfoldername必需,指定新文件夹的名称,String类型。
  • 新文件夹的位置由Folders集合对象所在的父文件夹决定。
  • 例如,如果从一个Folders集合对象调用Add方法,且这个Folders集合对象是根文件夹对象的一个子文件夹集合,则该方法将在根文件夹下创建新的文件夹(即向根Folder对象的子文件夹集合添加新的文件夹),例如:
Option ExplicitDim objFso,objFolders
Dim objFolderRoot,objFolderChildSet objFso = CreateObject("Scripting.FileSystemObject")
Set objFolderRoot=objFso.Drives("C").RootFolder
Set objFolders=objFolderRoot.SubFolders
Set objFolderChild=objFolders.Add("chuhe")
  • 在newfoldername中不能使用路径标识符,只能使用新文件夹的名称。

VBS之Folder对象和Folders集合相关推荐

  1. vba正则表达式无效文件名过滤_VBA进阶 | 文件操作18:Folder对象与Folders集合详解...

    学习Excel技术,关注微信公众号: excelperfect 在<VBA进阶 | 文件操作8:认识Windows Scripting Host>中,我们介绍了FileSystem对象模型 ...

  2. VBS操作文件:File对象和Files集合

    文章目录 1.File对象 1.1.Attributes属性 1.2.DateCreated属性 1.3.DateLastAccessed属性 1.4.DateLastModified属性 1.5.D ...

  3. VBS之FileSystemObject对象详解

    目录 FileSystemObject的创建 FileSystemObject对象的属性和方法 属性 方法 FileSystemObject对象文件/文件夹相关的操作 复制文件/文件夹 Copy Co ...

  4. VBS中FileSystemObject对象详解

    下面是转摘的关于FileSystemObject的详细介绍,TextStream是其中的一个子对象. 前言 最近一直在学VBScript,网上相关的教程也有很多,但大多数的对象都放在ASP中讲解,对于 ...

  5. VBS教程-wscript对象

    一.wscript对象 描述:提供对 Windows 脚本宿主对象模型根对象的访问. 详述:WScript 对象是 Windows 脚本宿主对象模型层次结构的根对象.它可在任何脚本文件中使用,不需要特 ...

  6. FileSystemObject对象【1】:Drive对象和Drives集合

    文章目录 1.什么是Scripting.FileSystemObject对象 2.创建FSO对象的两种方法 2.1.前期绑定 2.2.后期绑定 2.3.优缺点比较 3.Drives 3.1.Count ...

  7. 【EventBus】事件通信框架 ( 订阅类-订阅方法缓存集合 | 事件类型-订阅者集合 | 订阅对象-事件类型集合 )

    文章目录 前言 一.订阅类-订阅方法缓存集合 二.事件类型-订阅者集合 三.订阅对象-事件类型集合 前言 首先声明几个数据结构 , 参考 [EventBus]EventBus 源码解析 ( 注册订阅者 ...

  8. hashset java api_java常用对象API中集合框架之HashSet

    之前在<java常用对象API之集合框架>这篇文章中已经将所有集合框架做了一个总体的大纲陈列,并阐述了所有Collection接口下的子接口和类的作用解释,那么接下来的文章智言还是想把里面 ...

  9. java中给对象的List集合去重的几种方法(Lambda)

    java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...

最新文章

  1. 2018全球智能+新商业峰会倒计时2个月,5000名AI从业者将出席
  2. 数字转换成字符串进行连接
  3. 关于反射的完整 练习
  4. Nginx七层负载均衡配置
  5. 微pe工具箱是微软的吗_微PE工具箱V2.0更新10内核
  6. week06 12 我们准备数据 前端调用rpc 前后端联调一下
  7. SCPPO(十五):IIS配置文件节点加密
  8. 转 windows查看端口占用命令
  9. Java的搜索引擎框架
  10. c#利用反射Assembly 对类和成员属性进行操作
  11. redmi_flash刷机之刷入第三方rec(recovery)TWRP_(2021.9.20实践)_以老旧机型redmi4x为例..待上传
  12. matlab 数据拟合相关
  13. journalctl如何使用?
  14. JQUI 的一个小问题
  15. 【运维面试】面试官:你觉得网站访问慢的原因有哪些?
  16. C#时间/日期格式大全
  17. raptor输入n个数据排序_常人或许不知晓的苹果Iphone输入法N个快捷录入技巧
  18. 李开复写给中国大学生的七封信(6/7)
  19. mac电脑解压缩报错:错误22 无效的参数
  20. 数据结构与算法(七)—— 散列表结构及其实现和应用

热门文章

  1. jsp里照片放在哪里_拍摄婚纱摄影照片,怎么摆姿势?
  2. linux查看/打开/关闭防火墙
  3. CSS中,+,~,空格,逗号等符号的使用
  4. Visio卷积神经网络模型-- 网格制作,多行方格(二)
  5. springboot+mybatis+vue WEB项目简易搭建文档
  6. javascript+css网址收藏
  7. thinkphp 5.0 php7.2,thinkphp5.0生命周期
  8. Java之hashMap遍历方式
  9. Win10Tiworker.exe进程CPU占用率过高的解决办
  10. 鲸落送书第一期清华出版社系列丛书