文件系统控件.pptx

上传人:莉*** 文档编号:80054956 上传时间:2023-03-22 格式:PPTX 页数:49 大小:254.06KB
返回 下载 相关 举报
文件系统控件.pptx_第1页
第1页 / 共49页
文件系统控件.pptx_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《文件系统控件.pptx》由会员分享,可在线阅读,更多相关《文件系统控件.pptx(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、图图10.1第1页/共49页为了在应用程序中能处理文件,VB提供了三种文件系统控件:驱动器列表框、目录列表框和文件列表框。利用它们可以自己设计出各种处理文件的对话框。当然也可以直接利用在第7章介绍过的VB提供的标准“打开”(Open)、“另存为”(Save As)对话框,但是,利用本章介绍的文件系统控件可以设计出满足用户特殊要求的、具有不同界面风格的对话框,利用它们进行文件管理十分方便。10.1驱动器列表框驱动器列表框控件(Drive List Box)在工具箱中的图标为。我们通过一个简单的例题说明驱动器列表框的作用。第2页/共49页【例10.1】在窗体上添加一个驱动器列表框,一个“退出”命令

2、按钮。当单击驱动器列表框中的某个驱动器名称时,用消息框显示所选的驱动器。用鼠标单击工具箱中的驱动器列表框图标,并用鼠标在窗体上拖拉画出一个驱动器列表框(见图10.2)。第3页/共49页图图10.2第4页/共49页从图10.2中可以看到驱动器列表框的右端有一个下三角按钮,在程序运行时,单击此按钮可以打开一个列表,列出当前系统中所能使用的驱动器的名字(见图10.3),列表框的顶部显示当前驱动器的名字,用户如单击列表框中某一驱动器的名字,则顶部立即改为用户所选的驱动器名。第5页/共49页图图10.3第6页/共49页驱动器列表框最重要的属性是Drive属性,它用来设置或返回当前驱动器名,但在设计阶段不

3、能使用这个属性,必须在程序中赋值,如:dr vTest.Drive=“a:”其中dr vTest 是在属性表中已指定的驱动器列表框的“名称”属性值(即该控件的名字)。执行此赋值语句后把当前驱动器改为“a:”。当用户单击列表框中某一驱动器名时,该驱动器名就成为该列表框的Drive属性值,也就是说,Drive属性可以用来设置当前驱动器,也可以接收并返回用户选定的驱动器名。当Drive属性值发生改变时,就发生Change事件。例如,执行上面的赋值语句后,就触发 第7页/共49页drvTest_Change()事件过程。为了显示选中的驱动器名,编写如下事件过程:Private Sub drvTest_

4、Change()MsgBox 选中的驱动器是:+drvTest.DriveEnd Sub例如,选中驱动器f后,驱动器列表框中显示该驱动器名,并弹出消息框,如图10.4。第8页/共49页图图10.4第9页/共49页10.2目录列表框目录列表框用于显示当前磁盘驱动器的目录。目录列表框控件(DirList Box)在工具箱中的图标为。【例10.2】调整图10.2窗体的布局,添加一个目录列表框dirTest,窗体如图10.5。当选中某个驱动器后,该驱动器的目录显示在目录列表框中。如果选中某个目录,用消息框显示被选中目录名。第10页/共49页图图10.5第11页/共49页从图10.5 中可以看到顶部是根

5、目录“c:”,下面列出“c:”下的子目录名,其中“VB98”被点亮,表示它是系统的当前目录。列表框右侧有一个垂直滚动条,在程序运行时移动滚动条可以浏览全部目录。从图中可以看到,只有当前目录(VB98)是打开的,其他子目录全部是关闭的(VB98左侧的文件夹图标是打开的)。双击一个目录,使其被打开,触发目录列表框的Change 事件,程序如下:Private Sub dirTest_Change()MsgBox 选中的目录是:+dirTest.PathEnd Sub第12页/共49页Path(路径)属性是目录列表框的重要属性之一,用来设置和返回当前的路径。上面事件过程中的dirTest.Path

6、返回当前的路径。到目前为止,窗体中的驱动器列表框和目录列表框相互之间尚未建立联系,也就是说,改变驱动器名时,目录列表框中内容不能随之变化。若要把驱动器列表框和目录列表框结合起来用,使二者“同步”,需要编写一段程序。Private Sub dr vTest_Change()dirTest.Path=dr vTest.DriveEnd Sub第13页/共49页例如,当驱动器列表框中当前目录由“c:”改变为“d:”时,发生了Change事件,执行drvTest _Change过程,drvTest.Drive的值已变为“d:”,把它赋给目录列表框dirTest的Path属性,因此在目录列表框就显示“d

7、:”的目录结构,见图10.6。这样,驱动器列表框和目录列表框能够同步变化。第14页/共49页图图10.6第15页/共49页10.3文件列表框文件列表框显示当前目录下的文件。文件列表框控件(File List Box)在工具箱中的图标为。【例10.3】调整图10.5的布局,添加文件列表框,并使目录与文件列表保持同步。在窗体上画出文件列表框,列表框中列出当前目录下的文件名。由于文件数量多,无法在列表框中全部显示出来,系统自动加上垂直滚动条用以浏览。见图10.7。第16页/共49页图图10.7第17页/共49页对 于 文 件 列 表 框,有 几 个 问 题 要 讨 论:1.怎 样 保 持 文 件 列

8、 表 与 目 录 的 同 步:利 用 P a t h 属 性文 件 列 表 框 也 有 P a t h 属 性,用 来 指 定 和 返 回 当 前 目 录。在 程 序 运 行 时,当 用 户 选 中 目 录 列 表 框 中 的 一 个 子 目 录 名 时,要 求 文 件 列 表 框 也“同 步”工 作,显 示 出 新 目 录 下 的 文 件。这 时 需 要 用 程序 来 实 现。当 用 户 选 择 了 新 的 目 录 名 时,由 于 目 录 改 变 了,发 生 了 C h a n g e 事 件。可 以 编 写 出 下 面 的 事 件 过 程:P r i v a t e S u b d i r

9、 Te s t _ C h a n g e ()f i l Te s t.P a t h =d i r Te s t.P a t hE n d S u b第18页/共49页将目录列表框的Path属性值赋给文件列表框的Path属性,这样就使得文件列表框得到目录列表框所指定的路径,显示出新目录下的文件名。文件列表框Path属性能够改变当前路径。若执行以下语句:filTest.Path=a:vb则指定当前路径为“a:vb”,文件列表框中显示出“a:vb”目录下的文件名。Path的缺省值是系统的当前路径。请注意,目录列表框和文件列表框都有Path属性,但二者的含义不同。如果有以下两个赋值语句:第19页

10、/共49页dirTest.Path=a:(目录列表框)filTest.Path=a:(文件列表框)则在目录列表框中显示a盘根目录下的目录结构,而在文件列表框中则列出a盘根目录下的全部文件名,在这里Path 用来确定文件的路径。2.用FileName属性设置或返回文件名文件列表框的另一属性FileName用来在运行时设置或返回所选中的文件名。例如,我们用MsgBox 函数显示被选中的文件。当用鼠标单击文件时,文件被选中,可以通过FileName属性得到文件名:第20页/共49页Private Sub filTest_Click()MsgBox 选中的文件是:+filTest.FileNameEn

11、d Sub如果用户单击文件列表框中一个文件名,则将此文件名送到列表框控件的FileName属性,也就是说,从该控件的FileName属性得到了用户所选择的文件名。3.用Pattern 属性限制显示文件的类型文件列表框有一个Pattern 属性,用来指定在文件列表框中显示文件的类型。它的缺省值为“*.*”,即显示所有文件的名字。如将Pattern 属性设置第21页/共49页 为“*.f r m”,则 显 示 扩 展 名 为.f r m 的 文 件。P a t t e r n 属 性 值 既 可 以 在 设 计 阶 段 从 属 性 表 中 设 置,也 可 以 在 运 行 阶 段 由 语 句 实 现

12、,如:f i l Te s t.p a t t e r n =“*.f r m”10.4如何运用文件系统控件在 应 用 程 序 中,常 常 需 要 对 文 件 进 行 操 作(如 对 文 件 的 打 开、复 制、重 命 名 等)。在 开 发 这 些 应 用 程 序 时,应 该 提 供 对 用 户 方 便 友 好 的 操 作 界 面。利 用 本 章 介 绍 的 内 容 可 以 方 便 地 实 现 这 一 任 务。【例 1 0.4】本 例 介 绍 如 何 将 驱 动 器、目 录 和 文 件 列 表 等 三 个 控 件 结 合 起 来 使 用,并 使 其 同 步 工 作,以第22页/共49页及怎样利

13、用它对文件进行复制、重新命名和删除的操作。窗体设计如图10.8所示。图图10.8第23页/共49页我 们 从 以 下 几 个 方 面 讨 论 这 个 程 序。1.装 载 窗 体在 初 始 装 载 窗 体 时,将 当 前 路 径 显 示 在 标 签 框 中。P r i v a t e S u b F o r m _ L o a d ()l a b e l 8.C a p t i o n =D i r L i s t.P a t hE n d S u b程 序 开 始 运 行 后,L a b e l 8.C a p t i o n 的 值 将 会 由 于 D i r L i s t _ C h a

14、 n g e()事 件 过 程 而 发 生 改 变。如 果 不 在 初 始 装 载 时 为 l a b e l 8.C a p t i o n 赋 值,并 且 不 改 变 目 录,则 l a b e l 8.C a p t i o n 一 直 为空。第24页/共49页2.保 持 各 文 件 系 统 控 件 的 同 步若 要 使 驱 动 器 列 表 框、目 录 列 表 框 和 文 件 列 表 框 保 持 同 步,需 要 如 下 两 个 事 件 过 程:P r i v a t e S u b D r i v e L i s t _ C h a n g e ()D i r L i s t.P a t

15、 h =D r i v e L i s t.D r i v eE n d S u bP r i v a t e S u b D i r L i s t _ C h a n g e ()F i l e L i s t.P a t h =D i r L i s t.P a t h L a b e l 8.C a p t i o n =D i r L i s t.P a t hE n d S u b第25页/共49页当用户单击驱动器列表框的某一驱动器名时,触发DriveList_Change()事件过程,将驱动器名赋给目录列表框的Path 属性,以使驱动器列表框与目录列表框“同步”。由于目录列表框中

16、的目录发生改变,触发了DirList_Change事件过程,该过程首先将目录列表框的Path 属性值赋给文件列表框的Path 属性。然后将目录列表框的Path 属性值赋给Label 8.Caption,使得在图10.8 的“当前被搜索目录”下面的框中显示出当前目录。3.选择文件名假设用单击操作选定文件名,所以我们设计一个对文件列表框的“单击”事件过程。第26页/共49页P r i v a t e S u b F i l e L i s t _ C l i c k ()l a b e l 4.C a p t i o n =F i l e L i s t.f i l e n a m e I f R

17、 i g h t$(D i r L i s t.P a t h,1)=T h e n c h o i c e d F i l e =D i r L i s t.P a t h +F i l e L i s t.f i l e n a m e E l s e c h o i c e d F i l e =D i r L i s t.P a t h +F i l e L i s t.f i l e n a m e E n d I fE n d S u b先 将 文 件 列 表 框 的 F i l e N a m e 属 性(即 选 定 的 文 件 名)送 给 标 签 框 4 的 C a p t i

18、 o n 属 性,以 使 得 在 图 1 0.8 中 的“当 前 被 选 择 的 文 件”下 面 的 标 签 框 中 显 示 出 当 前 文 件 名(见 图 1 0.9)。第27页/共49页图图10.9第28页/共49页考虑到后面要进行复制、删除、重命名等操作,应该把被选定的文件名保存下来,并在其他事件过程中对此文件进行操作。我们准备把文件名放到名为choicedFile的字符串变量中。但还有两个问题要处理:(1)应在文件名前加上路径,从而得到完整的文件名,否则系统无法找到该文件;(2)如果所选择的目录是根目录,其表示方式为“c:”或“a:”等,即路径字符串的末尾有一个“”符号。如果不是根目录

19、,则无此“”符号,如:“c:vb”。这就需要分别情况处理:对已有“”号的不再加“”号;对原来无“”号的,在路径后面加一“”号。如:第29页/共49页“c:vb”下面的文件a1.vbp,应表示为“c:vba1.vbp”。上面的FileList_Click 事件过程中的If语句对DirList.Path最后一个字符进行判断,如果是“”,则choicedFile的值是把路径字符串和文件名直接串接起来,如果无“”号,则在路径字符串之后加一“”,然后串接文件名。4.确定文件列表框的显示内容用户还应选择文件列表框中需要显示的文件类型(如.vbp类型,.exe类型等),用户在组合框Combo1中选择需要显示

20、的文件的类型(组合框的位置在“文件显示类型”这一行文字的下面),所选的类型应放在列表框的Pattern属性中,其过程如下:第30页/共49页P r i v a t e S u b C o m b o 1 _ C l i c k ()F i l e L i s t.P a t t e r n =C o m b o 1.Te x tE n d S u b5.文 件 的 复 制如 何 实 现 对 所 选 定 的 文 件 进 行 有 关 的 操 作。在 图 1 0.9 的 窗 口 中 有 三 个 文 件 操 作 命 令 按 钮,分 别 是:“复 制 文 件”,“重 新 命 名”,“删 除 文 件”,分

21、 别 对 应 三 种 操 作。如 果 用 户 单 击“复 制 文 件”按 钮,应 执 行 下 面 过 程,进 行 文 件 的 复 制:P r i v a t e S u b c m d C o p y _ C l i c k ()D i m s o u r F i l e A s S t r i n g第31页/共49页 D i m d e s t F i l e A s S t r i n g s t r 2$=请 输 入 复 制 目 的 文 件 s o u r F i l e =c h o i c e d F i l e d e s t F i l e =I n p u t B o x$(

22、s t r 2$,复 制 文 件 )I f d e s t F i l e T h e n F i l e C o p y s o u r F i l e,d e s t F i l e E n d I f E n d S u b先 定 义 s o u r F i l e(表 示 源 文 件)和 d e s t F i l e(目 标 文 件)为 字 符 串 变 量,将 前 面 已 选 定 的 文 件 c h o i c e d F i l e 赋 给 变 量 s o u r F i l e。注 意,为 了 在 不 同 的第32页/共49页过程中使用同一个变量,应在设计阶段在窗体的“通用”区将

23、choicedFile定义为窗体级变量:Dim choicedFile As String这样,在同一窗体内的两个(或多个)过程中所用的choicedFile代表同一个文件。在上面过程中接着用InputBox函数显示一个输入对话框(见图10.10)。要求用户输入目标文件名,并将它存放在destFile中。如果在InputBox中用户没有输入文件名,选择了“取消”按钮,则destFile为空字符串。只有destFile不是空字符串时,FileCopy语句才能执行。FileCopy是VB提供的复制文件的语句,其一般格式为:第33页/共49页FileCopy ,执行FileCopy语句,将用户所选定

24、的文件choicedFile复制到用户指定的目标文件中去,完成复制文件的操作。目标文件名是用户在输入对话框中指定的。第34页/共49页图图10.10第35页/共49页6.文 件 重 命 名如 果 用 户 单 击“重 新 命 名”按 钮,则 执 行 以 下 过 程,对 文 件 重 新 命 名。P r i v a t e S u b c m d R e n a m e _ C l i c k ()D i m o l d N a m e A s S t r i n g D i m n e w N a m e A s S t r i n g T i t l e$=重 新 命 名 s t r 0$=请

25、再 输 入 一 遍 需 要 修 改 的 文 件 名(全 路 径)s t r 1$=c h o i c e d F i l e +C h r$(1 0)+C h r(1 3)+s t r 0$s t r 2$=请 输 入 新 文 件 名 第36页/共49页 o l d N a m e =I n p u t B o x$(s t r 1$,T i t l e$)m s g$=确 认 被 更 改 的 文 件 名&o l d N a m e p =M s g B o x(m s g$,3 5,数 据 检 查 框 )I f p =6 T h e n n e w N a m e =I n p u t B

26、o x(s t r 2$,T i t l e$)N a m e o l d N a m e A s n e w N a m e M s g B o x 你 的 新 文 件 名 是:+n e w N a m e E n d I fE n d S u bc m d R e n a m e _ C l i c k()过 程 的 功 能 是 为 一 文 件 更 改 名 字。文 件 的 重 新 命 名 与 文 件 的 复 制 一 样 容 易,V B 提第37页/共49页供了一个Name语句为文件改名,它的一般格式是:Name As 我们通过一个示例说明为一个文件名重新命名的操作过程。(1)在目录列表框中

27、寻找d:TanVB6DOC,在文件列表框中找到文件TAN10_1.doc(或是任意一个你要修改名称的文件),双击该文件使之点亮。(2)单击“重新命名”命令按钮,出现一个输入对话框,要求输入要修改名字的文件名,我们输入d:TanVB6DOCTAN10_1.doc(绝对路径),见图10.11。第38页/共49页图图10.11第39页/共49页(3)按“确认”按钮退出对话框后,调用MsgBox函数打开一个标题为“数据检查框”的消息框,由用户再一次确认要改名的文件。函数MsgBox返回的值放在变量p中,如果用户选择了“是(Y)”按钮,p的值为6,(参阅第7章表7.4)确认要更改的文件是正确的。见图10

28、.12。第40页/共49页图图10.12第41页/共49页(4)确认要修改的内容后,再次用InputBox函数打开输入对话框输入新的文件名,我们在这里输入C:TAN10.DOC,见图10.13。最后用Name语句完成文件名的更改。图图10.13第42页/共49页修改成功后,在屏幕上弹出对话框显示新的文件名(包括驱动器及路径名),见图10.14。图图10.14第43页/共49页当 重 新 进 入 选 择 C:目 录 时,你 会 发 现 文 件 名 被 成 功 地 修 改 了。7.删 除 文 件如 果 用 户 单 击“删 除 文 件”按 钮,则 执 行 以 下 过 程:P r i v a t e

29、S u b c m d K i l l _ C l i c k ()D i m k i l l e d F i l e A s S t r i n g k i l l e d F i l e =c h o i c e d F i l e T i t l e$=数 据 检 查 框 m s g 1$=你 要 删 除 文 件:&k i l l e d F i l e第44页/共49页 x =M s g B o x(m s g 1$,3 5,T i t l e$)I f x =6 T h e n K i l l k i l l e d F i l e E n d I fE n d S u b 在 V

30、B 中 删 除 文 件 用 K i l l 语 句,它 的 一 般 格 式 为:K i l l 删 除 文 件 时,要 先 选 中 要 删 除 的 文 件,按“删 除 文 件”按 键,出 现 图 1 0.1 5 的 提 示 框,选 择“是(Y)”,即 可 完 成 删 除 文 件 的 操 作。第45页/共49页图图10.15第46页/共49页习题1.如何使驱动器列表框、目录列表框和文件列表框同步工作?2按图10.16 建立一个窗体。窗体上有驱动器列表框、目录列表框、文件列表框以及显示所选文件名的标签框和显示所选图片的图片框。当选中一个图形文件后(双击文件列表框),把该文件的图片显示在图片框中。第47页/共49页图图10.16第48页/共49页感谢您的观看。第49页/共49页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com