[办公][文件][FSO]文件夹操作

文件夹操作
fso := ComObjCreate("Scripting.FileSystemObject")

文件夹是否存在
FolderExists()

fso.FolderExists("D:\test") ;如果指定的文件夹存在则返回 -1;否则返回0。
if fso.FolderExists("D:\test")
MsgBox 文件夹存在

创建文件夹
CreateFolder()
创建一个文件夹,如果指定的文件夹已经存在则出错。

fso.CreateFolder("D:\test") ;创建一个文件夹test(目标文件夹的父文件夹必须存在)

object.BuildPath(path, name)
在已存在路径后追加名称。
object
必选项。应为 FileSystemObject 的名称。
path
必选项。将被追加 name 的并存在的路径。路径可以是绝对的或相对的,同时不需要指定已有文件夹。
name
必选项。被追加到已存在的 path 后的名称。
说明
如果需要,BuildPath 方法会在已有路径和名称之间另外再插入一个路径分隔符。


复制文件夹
CopyFolder ()
object.CopyFolder ( source, destination[, overwrite] );
object
必选项。应为 FileSystemObject 的名称。
source
必选项。指定文件夹字符串,可以包含通配字符来复制一个或多个文件夹.
destination
必选项。目的位置字符串, 文件夹和子文件夹将从 source 复制到这里。不允许通配字符。
overwrite
可选项。Boolean 值,指明是否覆盖已有文件夹。如果为 true ,则文件将被覆盖;如果为 false ,则文件不会被覆盖。默认的是 true。
说明
通配字符只能用在 source 参数中最后的路径成分中。举例来说,可以使用:
[VBScript]
FileSystemObject.CopyFolder “c:\mydocuments\letters\*”, “c:\tempfolder\”
但不能使用:
[VBScript]
FileSystemObject.CopyFolder “c:\mydocuments\*\*”, “c:\tempfolder\”
如果 source 包含了通配字符或者 destination 以路径分隔符 (\) 结束,那么将假定 destination 是一个已有的文件夹,满足匹配的文件夹和子文件夹将复制到这个文件夹中。否则,将假定 destination 是要创建的文件夹名。无论哪种情况,如果复制的是单个文件夹,将会有四种可能。
· 如果 destination 不存在,将会复制 source 文件夹及其所有子文件夹。这是通常情况。
· 如果 destination 是已有的文件夹,将产生一个错误。
· 如果 destination 是一个目录,那么将试图复制文件夹及其所有内容。如果 source 中包含的一个文件在 destination 已经有了,那么当 overwrite 为 false 时将会出错。否则会试图用该文件覆盖已有文件。
· 如果 destination 是一个只读目录,同时 overwrite 为 false ,那么在试图将已有的只读文件复制到目录中时将会出错。
如果使用了通配字符的 source 不能匹配任何文件夹,那么将产生错误。
CopyFolder 方法在遇到第一个错误时终止。出错后不试图回滚出错前所做的修改。

fso.CopyFolder("D:\test","C:\test") ;将文件夹D:\test复制到C:\test

移动文件夹
MoveFolder()
从一个位置向另一个位置移动一个或多个文件夹。
object.MoveFile ( source, destination)
object
必选项。应为 FileSystemObject 的名称。
source
必选项。要移动的文件夹的路径。source 参数的字符串只能在路径的最后成分中包含通配字符。
destination
必选项。文件夹要移入的路径。destination 参数不能包含通配字符。
说明
如果 source 包含了通配字符,或者 destination 以路径分隔符 (\) 结束,那么将假定 destination 指定的是已经存在了的文件夹,匹配的文件将移入其中。否则将假定 destination 是需要创建的目的文件夹的名称。无论哪种情况,如果移动的是单个文件夹,将会有三种可能:
· 如果 destination 不存在,那么文件夹将被移动。这是普通情况。
· 如果 destination 是已有的文件,那么将出错。
·如果 destination 是目录,那么也将出错。
·如果 source 中使用的通配字符无法匹配任何文件夹,那么也将出错。MoveFolder 方法在遇到第一个错误时终止。出错后不会试图回滚出错前所做的修改。
只有在操作系统支持时,才能通过这个方法在卷之间移动文件夹。
VBS的movefolder不支持跨盘转移操作,只支持同盘间的文件或文件夹转移,所以你可以先复制,再删除

fso.MoveFolder("D:\test\qq","D:\test\001\" ) ;从文件夹“D:\test\qq”移动到“D:\test\001”目录下面,test文件夹下面包含子文件
也可移动

 

重命名文件夹
MoveFolder()

fso.MoveFolder("D:\test","D:\test-") ;把文件夹名“test”修改为"test-"

 


删除文件夹
DeleteFolder()
删除指定的文件夹及其内容。
object.DeleteFolder ( folderspec[, force] );
object
必选项。应为 FileSystemObject 的名称。
folderspec
必选项。要删除的文件夹的名称。folderspec 可以在最后的路径成分中包含通配字符。
force
可选项。Boolean值,如果要删除设置了只读属性的文件夹,则为 true ;否则为 false (默认)。
说明
DeleteFolder 方法不区分文件夹是否包含了内容。删除指定的文件夹时不考虑其中是否有内容。
如果找不到匹配的文件夹则出错。DeleteFolder 方法在遇到第一个错误时终止。出错后不试图回滚或撤消出错前做的修改。

fso.DeleteFolder("D:\test") ;删除文件夹D:\test,不管是否含有子文件

获取父文件夹、子文件夹
获取文件夹名与父文件夹

 

fso. GetBaseName("D:\test") ;返回路径的文件名test
fso.GetBaseName("D:\test\") ;获取路径的文件名test
fso.GetParentFolderName("D:\test\aa") ;获取路径的父目录D:\test,并未测试路径是 否存在

 

获取文件夹D:\test下面的子文件夹

 

folder:=fso.GetFolder("D:\test") ;folder为"D:\test"目录对象
subfolders:=folder.SubFolders ;subfolders为子文件夹集合
for subfolder in subfolders
{
Msgbox subfolder.name ;subfolder.name 为子文件夹名
}

 

 

获取文件夹D:\test下面的子文件

 

folder:=fso.GetFolder("D:\test") ;folder为"D:\test"目录对象
subfiles:=folder.Files ;folder.Files为子文件集合
for file in subfiles
{
MsgBox file.name ; file.name为文件全名(包含后缀)
}

 

 


获取设置文件夹属性
设置或返回文件或文件夹的属性。根据不同属性为读/写或只读。
object.Attributes [= newattributes]
object
必选项。应为 File 或 Folder 对象的名称。
newattributes
可选项。如果提供了这个部分,那么 newattributes 将成为指定的 object 的新属性值。
设置
newattributes参数可以是下列各值或者这些值的组合:
常数 值 描述
Normal 0 普通文件。不设置属性。
ReadOnly 1 只读文件。属性为读/写。
Hidden 2 隐藏文件。属性为读/写。
System 4 系统文件。属性为读/写。
Volume 8 磁盘驱动器卷标。属性为只读。
Directory 16 文件夹或目录。属性为只读。
Archive 32 文件在上次备份后已经修改。属性为读/写。
Alias 64 链接或者快捷方式。属性为只读。
Compressed 128 压缩文件。属性为只读

folder:=fso.GetFolder("D:\test") ;folder为"D:\test"目录对象
folder.Attributes ;返回16,即文件夹或目录。如果既为文件夹又隐藏,则返回值为18(16+2)
folder.Attributes:=2 ;隐藏文件
folder.Attributes:=0 ;显示文件

 

 

给TA捐赠
共{{data.count}}人
人已捐赠
其他

[编程][网页]网页加载完毕的判断

2017-10-27 9:46:04

其他

[编程][网络]获取北京时间

2017-10-27 16:07:03

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索