1、第 1 页 共 7 页第九章 VB 中的文件操作9.1 文件系统控件1 文件系统控件种类(1) 驱动器列表框(DriveListBox):用来显示当前机器上的所有盘符(2) 目录列表框(DirListBox):用来显示当前盘上的所有文件夹(3) 文件列表框(FileListBox):用来显示当前文件夹下的所有文件名2 重要属性属性 适用的控件 作用 示例Drive 驱动器列表框 包含当前选定的驱动器名 Driver1. Drive=“C“Path 目录和文件列表框 包含当前路径 Dir1.Path=“C:WINDOWS“FileName 文件列表框 包含选定的文件名 MsgBox File1.
2、FileNamePattern 文件列表框 决定显示的文件类型 File1.Pattern=“*.BMP“3 重要事件事件 适用的控件 事件发生的时机Change 目录和驱动器列表框驱动器列表框的 Change 事件是在选择一个新的驱动器或通过代码改变 Drive 属性的设置时发生目录列表框的 Change 事件是在双击一个新的目录或通过代码改变 Path 属性的设置时发生PathChange 文件列表框 当文件列表框的 Path 属性改变时发生PattenChange 文件列表框 当文件列表框的 Pattern 属性改变时发生Click 目录和文件列表框 用鼠标单击时发生DblClick 文
3、件列表框 用鼠标双击时发生9.2 文件的读写1. 文件的有关概念记录:计算机处理数据的基本单位,由若干个相互关联的数据项组成。相当于表格中的一行。文件:记录的集合,相当于一张表。文件类型:顺序文件、随机文件、二进制文件。访问模式:计算机访问文件的方式,VB 中有顺序、随机、二进制三种访问模式。2. 顺序访问模式第 2 页 共 7 页顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以跳跃式访问。该模式专门用于处理文本文件,每一行文本相当于一条记录,每条记录可长可短,记录与记录之间用“换行符”来分隔。顺序文件的写入步骤:打开、写入、关闭; 读出步骤:打开、读出
4、、关闭。(1)打开文件打开文件的命令是 Open,格式为:Open “文件名” For 模式 As # 文件号 Len=记录长度说明:1)文件名可以是字符串常量也可以是字符串变量2)模式可以是下面之一:OutPut:打开一个文件,将对该文件进行写操作Input:打开一个文件,将对该文件进行读操作Append :打开一个文件,将在该文件末尾追加记录 3) 文件号是一个介于 1-511 之间的整数,打开一个文件时需要指定一个文件号,这个文件号就代表该文件,直到文件关闭后这个号才可以被其他文件所使用。可以利用FreeFile()函数获得下一个可以利用的文件号。例: Open “D:sjaaa“ Fo
5、r Output As #1 意思是:打开 D:SJ 下 aaa 文件供写入数据,文件号为#1(2)写操作将数据写入磁盘文件所用的命令是:Write# 或 Print#。语法格式:1) Print #文件号,输出列表例: Open “D:SJTEST.DAT” For Output As #1 Print #1,Text1.Text 把文本框的内容一次性写入文件Close #12)Write #文件号,输出列表其中,输出列表一般是指用逗号分隔的数值或字符串表达式。Write #与 Print #的功能基本相同,区别是 Write #是以紧凑格式存放,在数据间插入逗号,并给字符串加上双引号。(3
6、) 关闭文件第 3 页 共 7 页结束各种读写操作后,必须将文件关闭,否则会造成数据丢失。关闭文件的命令是Close。Close # 文件号,# 文件号 例: Close #1,#2,#3(4) 读操作1) Input #文件号,变量列表作用:将从文件中读出的数据分别赋给指定的变量。注意:与 Write #配套才可以准确地读出。2)Line Input #文件号,字符串变量用于从文件中读出一行数据,并将读出的数据赋给指定的字符串变量,读出的数据中不包含回车符和换行符,可与 Print #配套用。3)Input$(读取的字符数, #文件号)该函数可以读取指定数目的字符。与读文件有关的两个函数:L
7、OF():返回某文件的字节数EOF():检查指针是否到达文件尾。例:将一个文本文件读入文本框的三种方法。3.随机访问模式该模式要求文件中的每条记录的长度都是相同的,记录与记录之间不需要特殊的分隔符号。只要给出记录号,可以直接访问某一特定记录,其优点是存取速度快,更新容易。(1) 打开与关闭打开:Open “文件名” For Random As # 文件号 Len=记录长度关闭:Close #文件号注意:文件以随机方式打开后,可以同时进行写入和读出操作,但需要指明记录的长度,系统默认长度为 128 个字节。(2)读与写读操作:Get #文件号,记录号 ,变量名第 4 页 共 7 页说明:Get
8、命令是从磁盘文件中将一条由记录号指定的记录内容读入记录变量中;记录号是大于 1 的整数,表示对第几条记录进行操作,如果忽略不写,则表示当前记录的下一条记录。写操作:Put #文件号, 记录号,变量名说明:Put 命令是将一个记录变量的内容,写入所打开的磁盘文件指定的记录位置;记录号是大于 1 的整数,表示写入的是第几条记录,如果忽略不写,则表示在当前记录后插入一条记录。4. 二进制访问模式打开:Open “文件名” For Binary As # 文件号 Len=记录长度关闭:Close #文件号该模式是最原始的文件类型,直接把二进制码存放在文件中,没有什么格式,以字节数来定位数据,允许程序按
9、所需的任何方式组织和访问数据,也允许对文件中各字节数据进行存取和访问。该模式与随机模式类似,其读写语句也是 Get 和 Put,区别是二进制模式的访问单位是字节,随机模式的访问单位是记录。在此模式中,可以把文件指针移到文件的任何地方,刚开始打开时,文件指针指向第一个字节,以后随文件处理命令的执行而一旦。文件一旦打开,就可以同时进行读写。9.3 常用的文件操作语句和函数1 FileCopy 语句格式:FileCopy 源文件名 目标文件名功能:复制一个文件说明:不能复制一个已打开的文件2 Kill 语句格式:Kill 文件名功能:删除文件说明:文件名中可以使用通配符 *,?3 Name 语句格式
10、:Name 旧文件名 新文件名功能:重新命名一个文件或目录第 5 页 共 7 页说明:不能使用通配符;具有移动文件功能;不能对已打开的文件进行重命名操作4 ChDrive 语句格式:ChDrive 驱动器功能: 改变当前驱动器 说明:如果驱动器为空,则不变;如果驱动器中有多个字符,则只会使用首字母5MkDir 语句格式:MkDir 文件夹名功能:创建一个新的目录6ChDir 语句格式:ChDir 文件夹名功能:改变当前目录说明:改变默认目录,但不改变默认驱动器。7. RmDir 语句格式:RmDir 文件夹名功能:删除一个存在的目录说明:不能删除一个含有文件的目录8. CurDir()函数格式: CurDir(驱动器)功能:可以确定任何一个驱动器的当前目录。说明:括号中的驱动器表示需要确定当前目录的驱动器,如果为空,返回当前驱动器的当前目录路径。第 6 页 共 7 页第 7 页 共 7 页