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