注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

naigeer的知识库

不断学习,用知识武装头脑,用头脑创造未来!

 
 
 

日志

 
 

[转载]利用VB控件操作目录和文件夹(二)  

2007-11-30 14:35:18|  分类: 编程系列 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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属性的用法:

SubShowFileAccessInfo(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结尾的文本文件来说,本属性会返回”TextDocument”.下面的代码举例说明了返回某个文件夹类型的Type属性的用法.在这个示例中,试图将RecycleBin的路径或其他唯一的文件夹提供给过程.

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对象不能创建或删除驱动器。

  下面的例子可以在应用程序所在目录下创建一个文件夹

SubCreateFolder(folderspec)
 Dim fs
 Set fs = CreatObject(“Scripting.FileSystemObject”)
 fs.CreaterFolder(folderspec )
End sub

  2、 删除一个或多个文件夹

  可以使用FileSystemObject对象的Deletfolder方法,或者folder对象的Delete方法

SubDeleteFolder(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方法

SubMoveFolder(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方法。

SubCopyFolder(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
  评论这张
 
阅读(78)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017