- 中查找“文件系统控件的使用二”更多相关内容
- 中查找“文件系统控件的使用二”更多相关内容
- ·上一篇文章:文件系统控件的使用
- ·下一篇文章:文件系统控件方案
文件系统控件的使用二
设置当前目录
可用目录列表框的 Path 属性设置或返回列表框中的当前目录 (ListIndex = -1)。例如,若为图 7.18 中的 Drive1.Path 赋以 "c:\payroll",则目录 \Pagroll将成为当前工作目录。
同样,可把驱动器列表框的 Drive 属性赋予目录列表框的 Path 属性:
Dir1.Path = Drive1.Drive
执行赋值语句时,目录列表框将显示此驱动器上所有有效的目录和子目录。缺省时,目录列表框将显示驱动器的当前目录的所有上级目录以及下一级子目录,而驱动器是被指定给 Dir1.Path 属性的。目录列表框并不在操作系统级设置当前目录;它只是突出显示目录并将其 ListIndex 值设置为 -1。
为设置当前工作目录应使用 ChDir 语句。例如,下列语句将当前目录变成目录列表框中显示的一个目录:
ChDir Dir1.Path在使用文件控件的应用程序中,可用 Application 对象将当前目录设置成应用程序的可执行 (.exe) 文件所在目录:
ChDrive App.Path ''设置驱动器。
ChDir App.Path ''设置目录。
注意 Path 属性只在运行时可用,在设计时不可用。
详细信息 关于 Application 对象的详细信息,请参阅《Visual Basic 6.0语言参考》中“App 对象”。
单击目录项
目单击目录列表框中的某个项目时将突出显示该项目。而双击项目时则把它赋予 Path 属性并把其 ListIndex 属性设置为-1,然后重绘目录列表框以显示直接相邻的下级子目录。
查找目录的相对位置
ListCount 属性返回当前扩展目录下的目录数目,而不是目录列表框中的目录总数。因为当前扩展目录的 ListIndex 值总为 - 1,所以可以编程来判断在目录层次结构中,当前扩展目录与根目录有多大距离。例如:
''初始化当前扩展目录。
GoHigher = 0
''若目录不存在,
''则 Dir1.List(x) 返回空字符串。
Do Until Dir1.List(GoHigher) = ""
GoHigher = GoHigher - 1
Loop
''如有必要可转换成正数。
LevelsAbove = Abs(GoHigher)
文件列表框
文件列表框在运行时显示由 Path 属性指定的包含在目录中的文件。可用下列语句在当前驱动器上显示当前目录中的所有文件:
File1.Path = Dir1.Path
然后,可设置 Pattern 属性来显示这些文件的子集—─例如,设置为 *.frm后将只显示这种扩展名的文件。Pattern 属性也接受由分号分隔的列表。例如,下列代码行将显示所有扩展名为 .frm 和 .bas 的文件:
File1.Pattern = "*.frm; *.bas"Visual Basic 支持 ? 通配符。例如,???.txt 将显示所有文件名包含三个字符且扩展名为 .txt 的文件。
使用文件属性
文件列表框的属性也提供当前选定文件的属性(Archive、Normal、System、Hidden 和 ReadOnly)。可在文件列表框中用这些属性指定要显示的文件类型。System 和 Hidden 属性的缺省值为 False。Normal、Archive 和 ReadOnly属性的缺省值为 True。
例如,为了在列表框中只显示只读文件,直接将 ReadOnly 属性设置为 True并把其它属性设置为 False:
File1.ReadOnly = True
File1.Archive = False
File1.Normal = False
File1.System = False
File1.Hidden = False
当 Normal = True 时将显示无 System 或 Hidden 属性的文件。当 Normal =False 时也仍然可显示具有 ReadOnly 和/或 Archive 属性的文件,只需将这些属性设置为 True。
注意 不使用 attribute 属性设置文件属性。应使用 SetAttr 语句设置文件属性。缺省时,在文件列表框中只突出显示单个选定文件项。要选定多个文件,应使用 MultiSelect 属性。
详细信息 关于 SetAttr 语句的详细信息,请参阅《Visual Basic 6.0语言参考》的“SetAttr 语句”和“MultiSelect 属性”。
使用文件系统控件的组合
如果使用文件系统控件的组合,则可同步显示信息。例如,若有缺省名为Drive1、Dir1 和 File1 的驱动器列表框、目录列表框和文件列表框,则事件可能按如下顺序发生:
1. 用户选定 Drive1 列表框中的驱动器。
2. 生成 Drive1_Change 事件,更新 Drive1 的显示以反映新驱动器。
3. Drive1_Change 事件过程的代码使用下述语句,将新选定项目(Drive1.Drive 属性)赋予 Dir1 列表框的 Path 属性: Private Sub Drive1_Change ()
Dir1.Path = Drive1.Drive
End Sub
4. Path 属性赋值语句生成 Dir1_Change 事件并更新 Dir1 的显示以反映新驱动器的当前目录。
5. Dir1_Change 事件过程的代码将新路径(Dir1.Path 属性)赋予 File1 列表框的 File1.Path 属性:
Private Sub Dir1_Change ()
File1.Path = Dir1.Path
End Sub
6. File1.Path 属性赋值语句更新 File1 列表框中的显示以反映 Dir1 路径指定。
用到的事件过程及修改过的属性与应用程序使用文件系统控件组合的方式有关。下节“文件系统控件方案:文件搜索器应用程序”演示了这里描述的控件同步。