1、第8章 文件处理,8.1 文件控件8.2 利用文件控件来处理文件8.3 Visual Basic 6.0的文件处理语句与函数8.4 文件系统8.5 文件系统对象(FileSystemObject,FSO)编程,8.1 文件控件在VB6.0中包括4个文件类控件,它们分别是DriveListBox控件、DirListBox控件、FileListBox控件和CommonDialog控件。,返回目录,8.1.1 DriveListBox控件DriveListBox控件的功能是在程序的运行过程中,为用户提供一个选择有效磁盘驱动器的功能,该控件可用来显示用户系统中所有有效磁盘驱动器的列表。,图8-4 工具
2、箱中的DirListBox控件,8.1.2 DirListBox控件 在工具箱中选择DirListBox控件,如图8-4所示。,1Path属性Path属性用于返回或设置当前路径,属性的值是一个指示路径的字符串。 2List属性List属性的功能是返回或设置控件的列表部分的项目。 3ListCount属性ListCount属性的功能是返回控件的列表部分项目的个数,对DirListBox控件而言,ListCount属性中存储着当前目录中子目录的个数。,8.1.3 FileListBox控件在工具箱中选择FileListBox控件如图8-10所示。,图8-10 在工具箱中的FileListBox控件
3、,FileListBox控件的功能是在程序的运行过程中,在Path 属性指定的目录中,FileListBox 控件将文件定位并列举出来。,8.1.4 CommonDialog控件CommonDialog控件的功能是提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项以及选择颜色和字体等操作。 1常用方法CommonDialog控件所显示的对话框由控件的方法确定,在程序的运行过程中,当相应的方法被调用时,就会显示一个对话框。,表8-6 CommonDialog控件的常用方法,2Action属性为了与VB早期版本兼容,VB6.0提供了Action属性,它的功能是返回或设置被显示的对话框的
4、类型。3Filter属性Filter 属性的功能是返回或设置在对话框的类型列表框中所显示的过滤器。,8.2 利用文件控件来处理文件8.2.1 利用文件控件的第一个示例添加控件,设置其属性:向窗体上添加一个DriveListBox控件、一个DirListBox控件和一个FileListBox控件,它们将实现不同的功能,但是同时它们又相互协调。,返回目录,8.3 Visual Basic 6.0的文件处理语句与函数8.3.1 Kill语句Kill语句的功能是从磁盘中删除文件,它的语法结构如下:Kill pathname其中参数pathname是用来指定一个文件名的字符串表达式,pathname 要
5、包含文件所在的目录或文件夹、以及驱动器。,返回目录,1设计界面。首先在工具箱中添加一个CommonDialog控件,然后把它添加到空白的窗体上。2添加代码。3保存文件,运行程序。 4运行结果:选中欲删除的文件后,单击“确定”按钮,C盘根目录下的选中的Word文档就会被删除。,8.3.2 FileCopy语句FileCopy语句的功能是复制一个文件,它的语法结构如下: FileCopy source,destination在FileCopy语句的语法中包括两个参数:source用来表示要被复制的文件名,而destination用来指定要复制的目的文件名。,8.3.3 Shell函数Shell函数
6、的功能是执行一个可执行文件,同时返回一个 Variant(Double),如果成功的话,返回代表这个程序的任务 ID,若不成功,则会返回 0。它的语法结构如下:Shell(pathname,windowstyle)参数说明: pathname:为所要执行的应用程序的名称及其路径和必要的参数; Windowstyle:表示在程序运行时窗口的样式。,8.3.4 RmDir语句RmDir语句的功能是删除一个存在的而且为空的目录或文件夹,它的语法结构如下所示: RmDir Path其中参数Path是一个字符串表达式,用来指定要删除的目录或文件夹。,8.3.5 Name语句Name语句的功能是重新命名一
7、个文件、目录或文件夹,它的语法结构如下: Name oldpathname As newpathname其中包括以下两个部分:oldpathname为字符串表达式,由它来指定已存在的文件名和位置,包含目录或文件夹、以及驱动器。newpathname也为字符串表达式,它指定新的文件名和位置,同样要包含目录或文件夹、以及驱动器。,按照文件的存取方式及其组成结构可以分为两种类型:顺序文件、随机文件;按照文件的数据编码方式可以分为ASCII码文件和二进制文件;按照文件的特征属性可以分为系统文件、隐藏文件、只读文件、普通文件和存档文件;按照文件的数据性质来分可以分为程序文件和数据文件。,8.4 文件系统
8、,返回目录,8.4.1 顺序文件所谓的顺序文件,通常指的是普通的文本文件,文件中的字符包括文本字符及控制字符,如“,”、“Chr(14)”、换行符“CR,LF”、“Chr(13)”、“Chr(10)”等。数据是以ANSI代码保存。,1顺序文件的打开 打开顺序文件的语法结构如下: Open pathname For mode Access access lock As #filenumber Len=reclength,2顺序文件的读操作 从顺序文件中读取数据的语法结构如下: Input #filenumber,varlistInput #语句的语法参数及其说明如下: Filenumber:有效
9、的文件号。 Varlist:用逗号分界的变量列表,将文件中读出的值分配给这些变量。,3利用Write #语句执行写操作向顺序文件中写入数据的语法结构如下: Write #filenumber,outputlist Write # 语句的语法具有以下几个部分: 它的参数及说明如下: filenumber:一个有效的文件号。 Outputlist:要写入文件的表达式,用逗号将这些表达式分界。,4利用Print #语句执行写操作Print #语句的功能是把格式化显示的数据写入顺序文件中,它的语法结构如下: Print #filenumber,outputlist,8.4.2 随机文件随机存取用于存取
10、相同长度的数据记录,每一数据记录内可以设计各种栏位以容纳不同的数据。1变量声明在应用程序打开随机文件以前,应先声明所有用来处理该文件数据所需的变量,包括用户定义类型的变量,它对应着该文件中的记录和标准类型的其他变量,这些变量保存随机文件相关的数据。,2打开随机访问的文件要打开随机访问的文件,Open 语句使用以下语法: Open pathname For Random As filenumber Len = reclength因为 Random 是缺省的访问类型,所以 For Random 关键字是可选项。,3编辑随机型访问打开的文件如果要编辑随机型访问的文件,应先把记录从文件读到程序变量,然
11、后改变各变量的值,最后,把变量写回该文件。 要向随机访问打开的文件的尾端添加新记录,应使用前述代码段中所示的Put 语句。 要清除随机访问文件中删除的记录,按照以下步骤执行: (1)创建一个新文件。 (2)把所有有用的记录从原文件复制到新文件。 (3)关闭原文件并用 Kill 语句删除它。 (4)使用 Name 语句把新文件以原文件的名字重新命名。,8.4.3 二进制文件二进制文件与随机文件类似,唯一不同是:不必限制于固定长度,可以用喜欢的方式来存取文件。二进制访问能提供对文件的完全控制,因为文件中的字节可以代表任何东西。,1打开二进制型访问的文件要为二进制型访问打开文件,应使用以下 Open
12、 语句的语法: Open pathname For Binary As filenumber 2在长度可变的字段中保存信息为了更好地了解二进制型访问,以一个雇员记录文件的示例说明。,8.5 文件系统对象(FileSystemObject,FSO)编程FSO 对象模型编程包括三项主要任务: (1)使用CreateObject方法,或将一个变量声明为 FileSystemObject 对象类型来创建一个 FileSystemObject 对象。 (2)对新创建的对象使用适当的方法。 (3)访问该对象的属性。,返回目录,8.5.1 创建FileSystemObject 对象创建一个 FileSyst
13、emObject 对象可以通过如下两种方法完成: (1)将一个变量声明为 FileSystemObject 对象类型。 (2)使用 CreateObject 方法来创建一个 FileSystemObject 对象。,8.5.2 访问已有的驱动器、文件和文件夹要访问一个已有的驱动器、文件或文件夹,使用 FileSystemObject 对象中相应的 “get“ 方法: GetDrive GetFolder GetFile,8.5.3 使用驱动器通过该对象的属性可以获得下列信息: 以字节表示的驱动器总空间(TotalSize 属性),以字节表示的驱动器可用空间(AvailableSpace 或 F
14、reeSpace 属性)。 为驱动器指定的字母号(DriveLetter 属性)及驱动器类型,诸如可移动的、固定的、网络、CD-ROM或者RAM盘(DriveType 属性)。 驱动器序列号(SerialNumber 属性)。, 驱动器使用的文件系统类型,诸如FAT,FAT32,NTFS(FileSystem属性)等等。 驱动器是否可用(IsReady 属性)。 共享和/或卷标的名称(ShareName 和 VolumeName 属性)。 驱动器的路径或根文件夹(Path 和 RootFolder 属性)。,8.5.5 使用文件 1用 File System Objects 创建文件并添加数据一种方法就是使用 CreateTextFile 方法。 另一种方法是使用FileSystemObject对象的 OpenTextFile方法。 第三种方法是添加数据到文件文本。2使用File System Objects 读取文件 3移动、复制和删除文件 对文件的移动、复制和删除,FSO 对象模型都提供了两种方法,如表8-21所示。,表8-21 移动、复制和删除文件的方法,