1、2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程19.1 9.1 概述l文件(文件(file)是指具有文件名的相关数据的集合,)是指具有文件名的相关数据的集合,一般把它保存在外部存储介质中(例如磁盘)。一般把它保存在外部存储介质中(例如磁盘)。lVB文件由记录组成,记录由字段组成,字段则由文件由记录组成,记录由字段组成,字段则由字符组成。字符组成。lVB语言提供了一些语句和函数,专门用来完成文语言提供了一些语句和函数,专门用来完成文件的输入输出等操作。件的输入输出等操作。l按照文件的存取方式进行分类,按照文件的存取方式进行分类,VB文件一般可
2、以文件一般可以分为顺序文件、随机文件和二进制文件。分为顺序文件、随机文件和二进制文件。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程2顺序文件:顺序文件:l顺序文件一般是普通的文本文件,其所有数据都以顺序文件一般是普通的文本文件,其所有数据都以字符串的形式存储。字符串的形式存储。l顺序文件的一行数据就是一条记录,记录的长度不顺序文件的一行数据就是一条记录,记录的长度不固定,记录之间以换行符予以分隔。顺序文件的记固定,记录之间以换行符予以分隔。顺序文件的记录是顺序存储的,而且只提供第一条记录的存储位录是顺序存储的,而且只提供第一条记录的存储位
3、置。置。l顺序文件的访问应采取顺序存取方式,例如查找某顺序文件的访问应采取顺序存取方式,例如查找某一个数据只能从文件的头部开始,一条一条地顺序一个数据只能从文件的头部开始,一条一条地顺序读取记录,直至找到所要查找的记录为止。读取记录,直至找到所要查找的记录为止。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程3随机文件:随机文件:l随机文件由相同长度的记录集合组成,每一条记录随机文件由相同长度的记录集合组成,每一条记录有一个唯一的记录号。有一个唯一的记录号。l随机文件的访问可以采取随机存取方式,直接读取随机文件的访问可以采取随机存取方式,直接
4、读取某一条记录。只要指定记录号,就能够快速找到该条某一条记录。只要指定记录号,就能够快速找到该条记录在文件中的位置,然后进行相应的操作。记录在文件中的位置,然后进行相应的操作。l二进制文件按二进制的形式存储数据,这正是数据二进制文件按二进制的形式存储数据,这正是数据在内存中存储的原始形式。二进制文件与随机文件很相在内存中存储的原始形式。二进制文件与随机文件很相似,只是没有数据类型和记录长度这些说明信息。似,只是没有数据类型和记录长度这些说明信息。l二进制文件的访问同样可以采取随机存取方式,直二进制文件的访问同样可以采取随机存取方式,直接读取某一个字节。接读取某一个字节。l二进制文件允许程序按照
5、所需的任何方式组织数据,二进制文件允许程序按照所需的任何方式组织数据,并且适用于存取任意结构的数据。并且适用于存取任意结构的数据。二进制文件:二进制文件:2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程49.2 文件打开与关闭l对磁盘文件的操作,主要有打开、读、写、对磁盘文件的操作,主要有打开、读、写、关闭和删除等等。关闭和删除等等。l对文件操作时,必须遵循对文件操作时,必须遵循“先打开,后读先打开,后读写,最后关闭写,最后关闭”的原则。的原则。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教
6、程59.2 文件打开与关闭文件打开文件打开 lVB语言为文件打开提供语言为文件打开提供Open语句,其格式为:语句,其格式为:Open 文件名文件名For 模式模式Access 存取类型存取类型锁定锁定As#文件号文件号Len=记录长度记录长度 l说明:说明:(1)文件名是一个字符串,该参数是必选项,用来指定需要打开)文件名是一个字符串,该参数是必选项,用来指定需要打开的文件。如果该文件不在当前目录中,则在文件名中必须包含路径名。的文件。如果该文件不在当前目录中,则在文件名中必须包含路径名。(2)模式位于关键字)模式位于关键字For之后,用来指定文件的操作方式。一共之后,用来指定文件的操作方式
7、。一共有有5种方式,其中默认方式是种方式,其中默认方式是Random。模式模式含义含义Input顺序输入顺序输入Output顺序输出顺序输出Append在文件尾部顺序输出在文件尾部顺序输出Random随机存取随机存取Binary二进制方式二进制方式2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程6(3 3)存取类型位于关键字)存取类型位于关键字AccessAccess之后,用来指定所访问之后,用来指定所访问文件的类型。文件的类型。(4 4)锁定只在网络或者多任务环境中使用,其作用是限)锁定只在网络或者多任务环境中使用,其作用是限制其他用户或者
8、进程对已打开的文件进行读写操作。制其他用户或者进程对已打开的文件进行读写操作。(5 5)文件号是一个整型表达式,该参数是必选项,取值)文件号是一个整型表达式,该参数是必选项,取值范围在范围在15111511之间。在执行之间。在执行OpenOpen语句时,系统自动为打开的文件语句时,系统自动为打开的文件和文件号之间建立关联。此后文件号就代表打开的文件,在程和文件号之间建立关联。此后文件号就代表打开的文件,在程序中对该文件的操作都要借助于文件号。序中对该文件的操作都要借助于文件号。(6 6)记录长度是一个整型表达式,其取值不能超过)记录长度是一个整型表达式,其取值不能超过3276732767。对于
9、顺序文件,该参数是指缓冲区的字符数,默认值是对于顺序文件,该参数是指缓冲区的字符数,默认值是512512;对;对于随机文件,该参数是指记录的长度,默认值是于随机文件,该参数是指记录的长度,默认值是128128。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程79.2 文件打开与关闭文件关闭文件关闭lVB语言为文件关闭提供语言为文件关闭提供Close语句,其格式为:语句,其格式为:Close#文件号文件号,#文件号文件号l说明:如果省略文件号,则系统会将程序中所说明:如果省略文件号,则系统会将程序中所有已经打开的文件全部关闭。有已经打开的文件全
10、部关闭。l例如关闭例如关闭1号文件和号文件和2号文件,可以写为:号文件,可以写为:Close#1,#22023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程89.3 文件读写顺序文件顺序文件 1Print语句语句lPrint语句用于将格式化的数据写入顺序文件,其格式为:语句用于将格式化的数据写入顺序文件,其格式为:Print#文件号文件号,表达式列表表达式列表;|,l说明:说明:(1)Print语句的格式与语句的格式与Print方法十分相似,其差别在于方法十分相似,其差别在于Print语句增加了一个文件号参数。语句增加了一个文件号参数。Print语
11、句输出的对象是文语句输出的对象是文件,而件,而Print方法输出的对象则是窗体、图片框和打印机。方法输出的对象则是窗体、图片框和打印机。(2)表达式列表列出向文件写入的信息,它的用法与)表达式列表列出向文件写入的信息,它的用法与Print方法相同。该参数是可选项,如果被省略,则表示向文件写入方法相同。该参数是可选项,如果被省略,则表示向文件写入一个空行。一个空行。(3)如果用分号()如果用分号(;)分隔表达式列表中的数据项,按照紧)分隔表达式列表中的数据项,按照紧凑格式写入数据;如果用逗号(凑格式写入数据;如果用逗号(,)分隔数据项,按照标准格)分隔数据项,按照标准格式写入数据。式写入数据。(
12、4)对于字符串数据,如果其中含有逗号、分号、空格或)对于字符串数据,如果其中含有逗号、分号、空格或者换行符,则应该先给字符串加上双引号(者换行符,则应该先给字符串加上双引号(“”“”),然后写入),然后写入文件。文件。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程9 Private Sub Command1_Click()Dim n As Integer,i As Integer,name As String,age%n=Val(Text1.Text)Open d:test01.txt For Output As#1 打开文件打开文件 Fo
13、r i=1 To n name=InputBox(请输入第请输入第&i&个学生的姓名个学生的姓名)age=InputBox(请输入第请输入第&i&个学生的年龄个学生的年龄)Print#1,name;age 向文件写入学生的姓名和年龄向文件写入学生的姓名和年龄 Next i Close#1 关闭文件关闭文件 End Sub例例9.19.1 输入学生信息,并写入到文件输入学生信息,并写入到文件test01.txttest01.txt中中 2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程102Write语句语句lWrite语句也能够将数据写入顺序文
14、件,其格式语句也能够将数据写入顺序文件,其格式为:为:Write#文件号文件号,输出列表输出列表l说明:说明:(1)输出列表列出向文件写入的信息,其中的)输出列表列出向文件写入的信息,其中的各个数据项之间用逗号(各个数据项之间用逗号(,)分隔。)分隔。(2)Write语句的功能与语句的功能与Print语句基本相同。语句基本相同。其差别在于其差别在于Write语句写入的数据在文件中按照紧凑语句写入的数据在文件中按照紧凑格式存放,而且自动在数据之间插入逗号(格式存放,而且自动在数据之间插入逗号(,),并),并给字符串加上双引号。给字符串加上双引号。2023-12-13Visual BasicVis
15、ual Basic程序设计简明教程程序设计简明教程11例例9.29.2 追加信息到文件追加信息到文件test01.txttest01.txt Private Sub Command1_Click()Dim n As Integer,i As Integer,name As String,age%n=Val(Text1.Text)Open d:test01.txt For Append As#1 打开文件打开文件 For i=1 To n name=InputBox(请输入第请输入第&i&个学生的姓名个学生的姓名)age=InputBox(请输入第请输入第&i&个学生的年龄个学生的年龄)Writ
16、e#1,name,age 向文件写入学生的姓名和年龄向文件写入学生的姓名和年龄 Next i Close#1 关闭文件关闭文件 End Sub 2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程123Input语句语句Input语句用于从顺序文件读取数据,并把这些语句用于从顺序文件读取数据,并把这些数据赋给相应的变量。其格式为:数据赋给相应的变量。其格式为:Input#文件号文件号,变量列表变量列表说明:说明:(1)变量列表列出的变量用于接收从文件读出)变量列表列出的变量用于接收从文件读出的信息,各个变量之间用逗号(的信息,各个变量之间用逗号(
17、,)分隔。)分隔。(2)变量的类型应该与文件中数据的类型相匹)变量的类型应该与文件中数据的类型相匹配。为了确保能够将文件中的数据正确地读出,配。为了确保能够将文件中的数据正确地读出,Input语句应该与语句应该与Write语句配合使用。语句配合使用。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程13例例9.39.3 显示文件显示文件test01.txttest01.txt中的信息中的信息 Private Sub Command1_Click()Dim name As String,age%Open d:test01.txt For Inpu
18、t As#1 打开文件打开文件 Do While Not EOF(1)Input#1,name,age 从文件读出学生的姓名和年龄从文件读出学生的姓名和年龄 Picture1.Print name,age Loop Close#1 关闭文件关闭文件 End Sub 2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程144Line Input语句语句lLine Input语句用于从顺序文件读取一行数据,并把它赋给语句用于从顺序文件读取一行数据,并把它赋给一个字符串变量。其格式为:一个字符串变量。其格式为:Line Input#文件号文件号,字符串
19、变量字符串变量l说明:说明:Line Input语句能够一次读出文件中的一行数据即一语句能够一次读出文件中的一行数据即一条记录,其中不包含换行符。条记录,其中不包含换行符。Line Input语句一般与语句一般与Print语句配语句配合使用。合使用。5Input函数函数lInput函数用于从文件中读取指定数量的字符,并把它赋给一函数用于从文件中读取指定数量的字符,并把它赋给一个字符串变量。其格式为:个字符串变量。其格式为:Input(n,#文件号文件号)l说明:说明:Input函数通常出现在赋值语句中,参数函数通常出现在赋值语句中,参数n指定了读取指定了读取字符的数量。字符的数量。l例如:例如
20、:Dim a As String a=Input(20,#1)Input函数从函数从1号文件读出号文件读出20个字符,并赋给字符串变量个字符,并赋给字符串变量a。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程159.3 文件读写随机文件随机文件2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程161Put语句语句lPut语句用于将记录变量中的数据,写入到随机文件语句用于将记录变量中的数据,写入到随机文件中指定的记录位置。其格式为:中指定的记录位置。其格式为:Put#文件号文件号,记录号记录号
21、,变量变量l说明:记录号是一个自然数,表示写入的是第几条记说明:记录号是一个自然数,表示写入的是第几条记录。如果省略了记录号,例如写为:录。如果省略了记录号,例如写为:Put#1,stu 则表示把变量中的记录写入到文件的下一个记录位置。则表示把变量中的记录写入到文件的下一个记录位置。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程172Get语句语句lGet语句用于从随机文件读取指定位置的记录,语句用于从随机文件读取指定位置的记录,并把它赋给一个记录变量。其格式为:并把它赋给一个记录变量。其格式为:Get#文件号文件号,记录号记录号,变量变量
22、l说明:说明:Get语句的格式与语句的格式与Put语句基本相同,语句基本相同,其作用则正好相反。其作用则正好相反。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程189.4 文件操作l读写操作是文件操作的重要组成部分,它读写操作是文件操作的重要组成部分,它针对的是文件内容。针对的是文件内容。l文件操作还有删除、复制和重命名等等,文件操作还有删除、复制和重命名等等,这些操作主要是针对文件整体。这些操作主要是针对文件整体。lVB提供了一组语句和函数,使得程序员可提供了一组语句和函数,使得程序员可以对文件或者目录进行一些维护性操作。以对文件或者目录
23、进行一些维护性操作。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程199.4 文件操作文件操作语句文件操作语句1FileCopy语句语句lFileCopy语句用于将源文件复制到指定的目语句用于将源文件复制到指定的目标文件,其格式为:标文件,其格式为:FileCopy 源文件名源文件名,目标文件名目标文件名2Kill语句语句lKill语句用于删除指定的文件,其格式为:语句用于删除指定的文件,其格式为:Kill 文件名文件名2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程203Name语句语句
24、Name语句用于对文件重命名,其格式为:语句用于对文件重命名,其格式为:Name 原文件名原文件名 As 新文件名新文件名4Seek语句语句Seek语句用于设置文件的下一个读写位置,其语句用于设置文件的下一个读写位置,其格式为:格式为:Seek#文件号文件号,位置位置5ChDrive语句语句ChDrive语句用于设置当前驱动器,其格式为:语句用于设置当前驱动器,其格式为:ChDrive 驱动器名驱动器名2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程216MkDir语句语句MkDir语句用于创建一个新目录,其格式为:语句用于创建一个新目录,其
25、格式为:MkDir 目录名目录名 7ChDir语句语句ChDir语句用于设置当前目录,其格式为:语句用于设置当前目录,其格式为:ChDir 目录名目录名8RmDir语句语句RmDir语句用于删除指定的目录,其格式为:语句用于删除指定的目录,其格式为:RmDir 目录名目录名2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程229.4 文件操作文件操作函数文件操作函数1FreeFile函数函数lFreeFile函数的格式为:函数的格式为:FreeFile(n)l该函数的作用是,返回一个在程序中尚未使用的文该函数的作用是,返回一个在程序中尚未使用的
26、文件号。件号。2LOF函数函数lLOF函数的格式为:函数的格式为:LOF(文件号文件号)l该函数的作用是,返回指定文件的长度(字节数)。该函数的作用是,返回指定文件的长度(字节数)。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程233EOF函数函数EOF函数的格式为:函数的格式为:EOF(文件号文件号)该函数的作用是,检测当前操作是否到达文件的尾部。该函数的作用是,检测当前操作是否到达文件的尾部。4Seek函数函数Seek函数的格式为:函数的格式为:Seek(文件号文件号)该函数的作用是,返回文件的当前读写位置。该函数的作用是,返回文件的当
27、前读写位置。5CurDir函数函数lCurDir函数的格式为:函数的格式为:CurDir(驱动器名驱动器名)l该函数的作用是,返回指定驱动器的当前目录。该函数的作用是,返回指定驱动器的当前目录。6Shell函数函数lShell函数的格式为:函数的格式为:Shell(文件名文件名,窗口类型窗口类型)l该函数的作用是,调用并运行指定的可执行文件。该函数的作用是,调用并运行指定的可执行文件。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程249.5 9.5 文件系统控件l除了通用对话框之外,除了通用对话框之外,VB还提供了还提供了文件系统控件,它包
28、括驱动器列表框控文件系统控件,它包括驱动器列表框控件、目录列表框控件和文件列表框控件。件、目录列表框控件和文件列表框控件。l文件系统控件是标准控件,程序员可文件系统控件是标准控件,程序员可以使用它创建自定义对话框,编写文件以使用它创建自定义对话框,编写文件管理程序。管理程序。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程259.5 9.5 文件系统控件驱动器列表框驱动器列表框l驱动器列表框(驱动器列表框(DriveListBox)控件用来列)控件用来列出系统中全部有效的驱动器,默认情况下显示系出系统中全部有效的驱动器,默认情况下显示系统当前
29、的驱动器,用户也可以从下拉式列表框中统当前的驱动器,用户也可以从下拉式列表框中选择所需的驱动器。选择所需的驱动器。l 在工具箱中表示为:在工具箱中表示为:2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程26驱动器列表框的常用属性驱动器列表框的常用属性 属性属性作用作用Name设置驱动器列表框的对象名,程序第一个驱动器列设置驱动器列表框的对象名,程序第一个驱动器列表框控件的默认对象名是表框控件的默认对象名是Drive1Drive设置所选择的驱动器名设置所选择的驱动器名List确定驱动器列表框所显示的驱动器列表确定驱动器列表框所显示的驱动器列表L
30、istCount确定驱动器列表框中驱动器的总数确定驱动器列表框中驱动器的总数2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程27说明:说明:Drive是驱动器列表框控件最重要的属性,是驱动器列表框控件最重要的属性,其属性值只能通过程序代码设置。其属性值只能通过程序代码设置。List是一个字符串数组,其中每一个元素是一个字符串数组,其中每一个元素都存放了一个有效的驱动器名和卷标。都存放了一个有效的驱动器名和卷标。Change事件是驱动器列表框控件最重要的事件是驱动器列表框控件最重要的事件。一旦用户选择了一个新的驱动器,导致事件。一旦用户选择了一
31、个新的驱动器,导致Drive属性值被改变,就会引发属性值被改变,就会引发Change事件。事件。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程289.5 9.5 文件系统控件目录列表框目录列表框l目录列表框(目录列表框(DirListBox)控件用来显示)控件用来显示系统当前驱动器上的目录结构,初始状态系统当前驱动器上的目录结构,初始状态下只显示当前驱动器的根目录和当前目录。下只显示当前驱动器的根目录和当前目录。l程序运行时如果用户双击某个子目录,就程序运行时如果用户双击某个子目录,就可以使它成为当前目录。可以使它成为当前目录。l在工具箱中
32、表示为:在工具箱中表示为:2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程29目录列表框的常用属性目录列表框的常用属性 属性属性作用作用Name设置目录列表框的对象名,程序第一个目录列表设置目录列表框的对象名,程序第一个目录列表框控件的默认对象名是框控件的默认对象名是Dir1Path设置当前目录设置当前目录List确定当前目录下的子目录列表确定当前目录下的子目录列表ListCount确定当前目录下子目录的总数确定当前目录下子目录的总数ListIndex确定当前目录在目录列表中的索引确定当前目录在目录列表中的索引2023-12-13Visual
33、 BasicVisual Basic程序设计简明教程程序设计简明教程30说明:说明:目录列表框只能显示当前驱动器上的目录,如目录列表框只能显示当前驱动器上的目录,如果要显示其他驱动器上的目录,则必须修改果要显示其他驱动器上的目录,则必须修改Path属属性,从而改变路径。性,从而改变路径。List是一个字符串数组,其中每一个元素都存是一个字符串数组,其中每一个元素都存放了当前目录下的一个子目录名。放了当前目录下的一个子目录名。当前目录的当前目录的ListIndex属性值是属性值是-1。如果当前。如果当前目录包含子目录,则每一个子目录的目录包含子目录,则每一个子目录的ListIndex属性属性值依
34、次从值依次从0到到ListCount-1;如果当前目录有父目录,;如果当前目录有父目录,则父目录的则父目录的ListIndex属性值是属性值是-2,依次类推。,依次类推。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程31事件事件:lChange事件是目录列表框控件最重事件是目录列表框控件最重要的事件。要的事件。l一旦用户选择了一个新的目录,导一旦用户选择了一个新的目录,导致致Path属性值被改变,就会引发属性值被改变,就会引发Change事件。事件。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计
35、简明教程329.5 9.5 文件系统控件文件列表框文件列表框l文件列表框(文件列表框(FileListBox)控件用)控件用来显示指定目录下的所有文件,初来显示指定目录下的所有文件,初始状态下显示当前目录下的文件。始状态下显示当前目录下的文件。l在工具箱中表示为:在工具箱中表示为:2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程33文件列表框的常用属性文件列表框的常用属性 属性属性作用作用Name设置文件列表框的对象名,程序第一个文件列表框控设置文件列表框的对象名,程序第一个文件列表框控件的默认对象名是件的默认对象名是File1FileNam
36、e确定所选中的文件名确定所选中的文件名Path设置显示的文件所在目录设置显示的文件所在目录Pattern设置所显示文件的类型设置所显示文件的类型MultiSelect确定是否允许选择多个文件,默认值是确定是否允许选择多个文件,默认值是0,表示不允许,表示不允许多选多选ListCount确定所显示文件的总数确定所显示文件的总数2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程34说明:说明:文件列表框只显示当前目录下的文件,文件列表框只显示当前目录下的文件,如果要显示其他目录下的文件,就必须在程如果要显示其他目录下的文件,就必须在程序代码中修改序
37、代码中修改PathPath属性,从而改变路径。属性,从而改变路径。PatternPattern是一个字符串,默认值是是一个字符串,默认值是“*.*”。可以为文件列表框所显示的文件设。可以为文件列表框所显示的文件设置多种类型,类型之间用分号(置多种类型,类型之间用分号(;)进行分隔。)进行分隔。2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程35文件列表框的常用事件文件列表框的常用事件 事件事件来源来源PathChange文件列表框的文件列表框的Path属性值发生改变属性值发生改变PatternChange文件列表框的文件列表框的Pattern属性值发生改变属性值发生改变Click单击文件列表框中的一个文件名单击文件列表框中的一个文件名DblClick双击文件列表框中的一个文件名双击文件列表框中的一个文件名2023-12-13Visual BasicVisual Basic程序设计简明教程程序设计简明教程36文件系统控件之间的同步:文件系统控件之间的同步:Private Sub Drive1_Change()改变了驱动器名改变了驱动器名Dir1.Path=Drive1.DriveEnd SubPrivate Sub Dir1_Change()改变了目录改变了目录File1.Path=Dir1.PathEnd Sub