2、文件夹
对文件夹的操作,我们可以使用folder对象,它提供了对文件夹所有属性和方法的访问.下表市对其主要属性的解释:
DateCreated | 返回指定文件或文件夹的创建日期和时间 |
DateLastAccessed | 返回最后一次访问指定文件或文件夹的日期和时间 |
Drive | 返回指定文件或文件夹所在的驱动器符号 |
Files | 返回由File对象组成的所有Files集合,这些Files集合包含在指定的文件夹中,包括设置了隐藏和系统文件属性的那些文件夹 |
IsRootFolder | 如果指定的文件夹是根文件夹,则返回True,否则返回False |
Name | 设置或返回指定文件或文件夹的名称 |
ParentFolder | 返回指定文件或文件夹的父文件夹的Folder对象 |
Path | 返回指定文件、文件夹或驱动器的路径 |
ShortName | 返回较早的需要8.3文件命名约定的程序所使用的短文件名 |
ShortPath | 返回较早的需要8.3文件命名约定的程序所使用的短路径 |
Size | 对文件来说,本属性返回以字节为单位的文件大小;对文件夹来说,返回以字节为单位包括其中所有文件或子文件夹的大小 |
SubFolders | 返回包含所有文件夹的一个Folders集合,这些文件夹包含在某个特定文件夹中, 包括设置了隐藏和系统文件属性的那些文件夹 |
Type | 返回指定文件或文件夹的类型信息. |
使用Folder对象的第一部就是先用FileSystemObjectd的GetFolder方法得到Folder对象, 该方法的作用是返回指定路径上的与某个文件夹相关的Folder对象.要保证指定的文件夹是实际存在的,否则会出错.
让我们来看一看其中的各种属性及其用法吧.
(1)Attributes属性可以返回文件或文件夹的属性,或者设置他们的新属性.所设属性可以是以下值中任意一个或多个的逻辑组合.
常数 | 值 | 说明 |
Normal | 0 | 为一般文件,不设置属性 |
ReadOnly | 1 | 为只读文件,属性为读/写 |
Hidden | 2 | 为隐藏文件,属性为读/写 |
System | 4 | 为系统文件,属性为读/写 |
Volume | 8 | 为磁盘驱动器卷标,属性为只读 |
Directory | 16 | 为文件夹或目录,属性为只读 |
Archive | 32 | 在上次备份后已经改变的文件,属性为读/写 |
Alias | 64 | 为链接或快捷方式,属性为只读 |
Compressed | 128 | 为压缩文件,属性为只读 |
(2)DateCreated属性返回指定文件或文件夹的创建日期和时间,本属性为只读属性.
下面是用法:
Sub ShowFolderList( folderspec ) ‘folderspec 为文件夹名称 Dim fs , f, f1,fc , s Set fs = CreateObject(“Scripting.FileSystemObject”) Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象 Set fc = f.SubFolders ‘得到folder对象所包含的文件夹的folder集合 For Each fi in fc ‘访问folder集合中的每一个folder s= s & f1.name ‘格式化要显示的文本 s= s & vbCrLf Next MsgBox s ‘用对话框显示信息 End Sub |
(3)DateLastModified属性用来返回最后一次修改指定文件或文件夹的日期和时间,本属性为只读.
下面代码用一个文件举例说明了DataLastModified属性的用法:
Sub ShowFileAccessInfo(filespec) Dim fs,f,s Set fs = CreateObject(“Scripting.FileSystemObject”) Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象 s= Ucase(filespec) & vbCrLf s= s& “Created:” & f.DateCreate & vbCrLf s= s & “Last Accessed :” & f.DateLastAccessed & vbCrLf s= s & “Last Modifide :” & f.DateLastModified MsgBox s, 0,”File Access Info” End Sub |
(4)Type属性返回关于某个文件或文件夹类型的信息.例如对于以.TXT结尾的文本文件来说,本属性会返回”Text Document”.下面的代码举例说明了返回某个文件夹类型的Type属性的用法.在这个示例中,试图将Recycle Bin的路径或其他唯一的文件夹提供给过程.
Sub ShowFileSize( filespec ) Dim fs,f,s Set fs = CreateObject(“Scripting.FileSystemObject”) Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象 S = Ucase(f.Name) & “is a ” & f.Type ‘格式化文本 MsgBox s,o, “File Size Info ” ‘显示信息 End Sub |
主要方法有:
(1)Copy方法:
该方法的作用是拷贝一个指定的文件或文件夹到指定的目录.该方法和FileSystemObject.CopyFile方法的作用相同
(2)CreateTextFile方法:
该方法的作用是产生一个指定的文件名,并返回一个TextStream对象,该对象可被用于对指定的文件进行读写.如果overwrite参数为False或未指定,对于一个已存在的文件,将产生错误.
(3)Delete方法:
该方法的作用是删除一个指定的文件或文件夹.如果指定的文件或文件夹不存在,则发生一个错误.对于一个File或Folder来说,Delete方法的运行的结果和执行FileSystemObject.DeleteFile或FileSystemObject.DeleteFolder的结果是一样的.Delete方法执行时与指定的文件夹中时候有内容无关.
(4)Move
该方法用来将一个指定的文件夹或文件从一个地方移动到另一个地方,如果只是想移动一个文件或文件夹,则使用Move方法和使用FileSystemObject.MoveFile或FileSystemObject.MoveFolder操作的结果是一样的,但是如果要同时移动多个文件或文件夹,则只能使用后者。
讲了这么多,还是让我们来看一下具体的实现方法:
1、 创建一个文件夹
可以使用FileSystemObject对象的CreateFolder方法来实现,但要创建的文件夹必须不存在,否则出错。特别注意,FileSystemObject对象不能创建或删除驱动器。
下面的例子可以在应用程序所在目录下创建一个文件夹
Sub CreateFolder(folderspec) Dim fs Set fs = CreatObject(“Scripting.FileSystemObject”) fs.CreaterFolder(folderspec ) End sub |
2、 删除一个或多个文件夹
可以使用FileSystemObject对象的Deletfolder方法,或者folder对象的Delete方法
Sub DeleteFolder(folderspec) Dim fs Set fs = CreatObject(“Scripting.FileSystemObject”) fs.DeleteFolder(folderspec & “100”) ‘Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象 ‘f.Delete End sub |
3、移动一个或多个文件夹
可以使用FileSystemObject对象的Movefolder方法,或者folder对象的Move方法
Sub MoveFolder(folderspec) Dim fs Set fs = CreatObject(“Scripting.FileSystemObject”) fs.MoveFolder(folderspec , “c:\windows\”) ‘Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象 ‘f.Move(“c:\windows\”) End sub |
4、一个或多个文件夹
可以使用FileSystemObject对象的Copyfolder方法,或者folder对象的Copy方法。
Sub CopyFolder(folderspec) Dim fs Set fs = CreatObject(“Scripting.FileSystemObject”) fs.CopyFolder(folderspec , “c:\windows\”) ‘Set f = fs.GetFolder(folderspec) ‘得到folderspec文件夹相关的folder对象 ‘f.Copy(“c:\windows\”) End sub |
评论