VB第8章文件操作.ppt
《VB第8章文件操作.ppt》由会员分享,可在线阅读,更多相关《VB第8章文件操作.ppt(72页珍藏版)》请在三一办公上搜索。
1、第8章 文 件 操 作,8.1 文件IO流模型,8.2 文件夹和文件操作,8.3 文件读写操作,8.1 文件IO流模型,8.1.1 System.IO名称空间的资源System.IO模型中的资源由System.IO名称空间提供。该名称空间含有对数据流和文件进行同步或异步读写的类、结构和枚举类型,表8.1、表8.2、表8.3分别列出了System.IO名称空间提供的部分常用的类、结构和枚举类型。,8.1.2 System.IO名称空间的功能,System.IO名称空间提供如下功能(括号中是提供相应功能的类):(1)建立、删除、管理文件和文件夹(File和Directory)。(2)监控文件和文件
2、夹的访问操作(FileSystemWatcher)。(3)对流进行单字节字符或字节块的读/写操作(SystemReader和SystemWriter)。(4)对流进行多字节字符的读/写操作(SystemReader和SystemWriter)。(5)对流进行字符的读/写操作(SystemReader和SystemWriter)。(6)对字符串进行字符的读/写操作,并允许把字符串作为字符流处理(StringReader和StringWriter)。(7)从一个流中读取数据类型和对象,或将数据类型和对象写入流中(BinaryReader和BinaryWriter)。,8.1.2 System.IO
3、名称空间的功能,(8)文件的随机访问(FileStream)。(9)系统性能优化(MemoryStream和BufferedStream)。(10)枚举文件或文件夹的属性(FileAccess、FileMode、FileShare、FileAttributes、DirectoryAttributes)。(11)监控文件或文件夹可能的改变(WatcherChangeTypes)。(12)枚举文件或文件夹可能的改变(ChangedFilters)。(13)指定监控的文件或文件夹(WatcherTarget)。(14)指定文件的相对位置(SeekOrigin)。,8.2 文件夹和文件操作,8.2.1
4、 文件夹操作对文件夹操作主要利用Directory和DirectoryInfo两个类来实现,它们都是System.IO名称空间的成员,因此在使用这两个类之前,需要先引入System.IO名称空间,引入的语句如下:Imports System.IO 引入System.IO名称空间。1Directory类1)CreateDirectory方法CreateDirectory方法的功能是建立一个新的文件夹,同时返回一个包括新建文件夹信息的DirectoryInfo对象(DirectoryInfo对象在本节后面介绍),调用的语法格式如下:Directory.CreateDirectory(path)例如
5、,在C盘根文件夹中创建一个名为temp的子文件夹,方法如下:Directory.CreateDirectory(C:temp)CreateDirectory方法还可以一次建立多级文件夹,示例如下:Directory.CreateDirectory(C:dir1dir2dir3),8.2.1 文件夹操作,2)Delete方法Delete方法的功能是删除指定文件夹及其中的所有文件和子文件夹,调用的语法格式如下:Directory.Delete(path,force)例如,删除C盘根文件夹中的名为temp的空文件夹,方法如下:Directory.Delete(C:temp)若temp文件夹中没有任何
6、文件或子文件夹,即可成功删除,否则将产生异常。如要删除含有子文件夹的文件夹,应使用带force参数的方法,示例如下:Directory.Delete(C:temp,True),8.2.1 文件夹操作,3)Exists方法Exists方法的功能是判断指定的文件夹是否存在,若存在则返回一个逻辑值True;否则返回False。调用的语法格式如下:Directory.Exists(path)如果指定的文件夹不存在,Directory类的很多方法会失败,因此在做文件夹操作前,可以先用Exists方法确定文件夹是否存在,示例如下:If Directory.Exists(C:temp)then Direct
7、ory.Delete(C:temp,True),8.2.1 文件夹操作,4)Move方法Move方法的功能是移动指定的整个文件夹到同一个磁盘中的另外一个位置。Move方法具有改名功能,即将源文件夹移动到目标文件夹指定的位置,但不是移动到目标文件夹中,而是将源文件夹名改为目标文件夹名。调用它的语法格式如下:Directory.Move(source,destination)例如,将C盘根文件夹中名为temp的子文件夹移动到“C:”中,并改名为dir1,方法如下:Directory.Move(C:temp,C:dir1),8.2.1 文件夹操作,5)GetLogicalDrives方法GetLog
8、icalDrives方法的功能是返回一个字符串数组,其中包括当前计算机中所有逻辑驱动器名,每个驱动器名是形如“C:”的字符串。调用的语法格式如下:Directory.GetLogicalDrives()例如,下面示例获得本机所有逻辑驱动器的名字,将其存放到字符串数组myDrv中,并将数组中所有元素放到一个组合框ComboBox1中:Dim myDrv(),x As String myDrv=Directory.GetLogicalDrives()For Each x In myDrvComboBox1.Items.Add(x)Next x,8.2.1 文件夹操作,6)GetDirectorie
9、s方法GetDirectories方法的功能是返回一个字符串数组,其中包括指定文件夹的所有子文件夹的完整路径名,不包括子文件夹中的子文件夹名。调用的语法格式如下:Directory.GetDirectories(path,pattern)例如,下面示例获得C盘dir1文件夹的所有子文件夹的名字,将其存放到字符串数组myDrv中:Dim myDrv()As String myDrv=Directory.GetDirectories(C:dir1)GetDirectories方法还可以使用通配符,获得符合条件的子文件夹名。例如,要获得C:WinNT下所有名字中包含“system”的子文件夹名,使用
10、下面的语句:Dim myDrv()As String myDrv=Directory.GetDirectories(C:WinNT,*system*),8.2.1 文件夹操作,7)GetFiles方法GetFiles方法的功能是返回一个字符串数组,其中包括指定文件夹的所有文件的完整路径名,但不包括子文件夹中的文件名。调用的语法格式如下:Directory.GetFiles(path,pattern)例如,下面示例获得C盘dir1文件夹中的所有文件的名字,将其存放到字符串数组myFiles中:Dim myFiles()As String myFiles=Directory.GetFiles(C:
11、dir1)GetFiles方法还可以使用通配符,获得符合条件的文件名。例如,要获得C:WinNT下所有扩展名为ini的文件名,使用下面的语句:Dim myFiles()As String myFiles=Directory.GetFiles(C:WinNT,*.ini),8.2.1 文件夹操作,8)GetFileSystemEntries方法GetFileSystemEntries方法的功能是返回一个字符串数组,其中包括指定文件夹的所有子文件夹和文件的完整路径名,但不包括子文件夹中的文件夹和文件名。该方法实际是GetDirectories和GetFiles方法返回的数组的总和。调用的语法格式如
12、下:Directory.GetFileSystemEntries(path,pattern)例如,下面示例获得C盘dir1文件夹中所有文件夹和文件的名字,将其存放到字符串数组myFiles中:Dim myFiles()As String myFiles=Directory.GetFileSystemEntries(C:dir1),8.2.1 文件夹操作,GetFileSystemEntries方法也可以使用通配符,获得符合条件的文件夹和文件名。例如,要获得C:WinNT下所有包含“system”的文件夹和文件名,使用下面的语句:Dim myFiles()As String myFiles=Di
13、rectory.GetFileSystemEntries(C WinNT,*system*)若要列举C:WinNT下所有的文件夹和文件名,可以使用下面的语句:Dim myFiles()As String For Each myFiles In Directory.GetFileSystemEntries(C:WinNT)Console.WriteLine(myFiles)在输出窗口显示文件夹或文件名。Next,8.2.1 文件夹操作,除了前面介绍的方法,Directory对象还有其他的一些方法,见表8.4,读者可查阅资料或在线帮助,了解它们的功能和用法。,8.2.1 文件夹操作,2Direct
14、oryInfo类创建DirectoryInfo对象的一个实例是通过调用它的构造函数来实现的,语法格式如下:Dim 对象名As New DirectoryInfo(path)例如,下面语句创建了一个关于C盘根文件夹的DirectoryInfo对象:Dim di As New DirectoryInfo(C:),8.2.1 文件夹操作,1)CreateSubDirectory方法CreateSubDirectory方法的功能是在当前实例所指定的文件夹下建立一个新文件夹,同时返回一个DirectoryInfo对象来代表新子文件夹,调用的语法格式如下:对象名.CreateSubDirectory(pa
15、th)例如,在C盘根文件夹中创建一个名为temp的子文件夹,示例如下:Dim di As New DirectoryInfo(C:)Di.CreateSubDirectory(temp)CreateSubDirectory方法还可以一次建立多级文件夹,示例如下:Dim di As New DirectoryInfo(C:)Di.CreateSubDirectory(dir1dir2dir3),8.2.1 文件夹操作,2)GetFileSystemInfos方法GetFileSystemInfos方法的功能是返回一个FileSystemInfo对象数组,数组中的每个元素都是当前实例所表示的文件夹
16、中的文件和子文件夹。调用的语法格式如下:对象名.GetFileSystemInfos(pattern)例如,获取C盘根文件夹中所有文件和子文件夹对象,示例如下:Dim di As New DirectoryInfo(C:)Dim itemsInfo()As FileSystemInfoItemsInfo=di.GetFileSystemInfos()GetFileSystemInfos方法还可以使用通配符,获得符合条件的对象。例如,要获得C:WinNT下所有包含“system”的文件夹和文件对象,使用下面的语句:Dim di As New DirectoryInfo(C:WinNT)Dim i
17、temsInfo()As FileSystemInfoItemsInfo=di.GetFileSystemInfos(*system*),8.2.1 文件夹操作,FileSystemInfo对象的常用属性见表8.5。,8.2.1 文件夹操作,如果要区分是文件还是文件夹,可以判断FileSystemInfo对象的Attributes属性是否为文件夹(即是否等于FileAttribute枚举的Directory值),是即为文件夹,否则就是文件。代码如下:Dim di As New DirectoryInfo(C:)Dim i As IntegerDim itemsInfo()As FileSyst
18、emInfoitemsInfo=di.GetFileSystemInfos(*system*)i=1If itemsInfo(i).Attributes And FileAttributes.Directory Then 是文件夹Else 是文件。End If,8.2.2 文件操作,1File类File类提供操作文件的方法,包括复制、移动、打开、关闭文件等方法。File类有些方法的使用与Directory类相同,表8.6列出了相同的方法。,8.2.2 文件操作,1)Create方法Create方法的功能是建立并打开一个新文件,同时返回指向该文件的Stream流对象。调用Create方法的语法格
19、式如下:File.Create(path,bufferSize)例如,在C盘根文件夹中创建一个名为myfile.dat的文件,返回一个名为ss的Stream流对象,方法如下:dim ss As Streamss=File.Create(C:myfile.dat)Create方法还可以在创建文件的同时指定文件的缓冲区大小。例如,在C盘根文件夹中创建一个名为myfile.dat的文件,并指定该文件的缓冲区为4096字节,示例如下:dim ss As Streamss=File.Create(C:myfile.dat,4096),8.2.2 文件操作,在有些情况下,用File类的Create方法创建
20、文件时会发生异常,表8.7列出了各种可能导致异常的类型。,8.2.2 文件操作,2)CreateText方法CreateText方法类似于Create方法,它的功能是建立并打开一个新文本文件,同时返回指向该文件的StreamWriter流对象。StreamWriter对象类似于Stream对象,但它只能用于文本文件的读/写操作,而Stream对象可以用于文本文件和二进制文件的读/写操作。调用CreateText方法的语法格式如下:File.CreateText(path)例如,在C盘根文件夹中创建一个名为myfile.txt的文本文件,并返回一个名为sw的StreamWriter流对象,方法如
21、下:dim sw As StreamWritersw=File.CreateText(C:myfile.txt),8.2.2 文件操作,3)Copy方法Copy方法的功能是复制一个文件到新的位置。调用它的语法格式如下:File.Copy(source,destination,overwrite)例如,将C盘根文件夹中名为myfile.txt的文件复制到D:dir1中,并更名为myfile_bak.txt。若目标文件已存在,则覆盖目标文件,方法如下:File.Copy(C:myfile.txt,D:dir1myfile_bak.txt,True),8.2.2 文件操作,4)Move方法Move方
22、法的功能是将指定的文件移动到新的位置,可以使用它来给文件改名。另外它允许在不同的磁盘上移动文件,这与Directory类的Move 方法不同。调用它的语法格式如下:File.Move(source,destination)例如,将C盘根文件夹中名为myfile.txt的文件移动到D:dir1中,并更名为myfile_new.txt,方法如下:File.Move(C:myfile.txt,D:dir1myfile_new.txt),8.2.2 文件操作,5)Delete方法Delete方法的功能是删除指定的文件,若文件被打开,将产生异常。调用它的语法格式如下:File.Delete(path)例
23、如,删除C盘根文件夹中名为myfile.txt的文件,方法如下:File.Delete(C:myfile.txt),8.2.2 文件操作,6)GetAttributes方法GetAttributes方法的功能是获得指定文件的属性,该方法返回一个FileAttributes对象,该对象包含文件的所有属性,表8.8列出了文件的各种属性。,调用GetAttributes方法的语法格式如下:File.GetAttributes(path),8.2.2 文件操作,7)Open方法Open方法的功能是打开一个已经存在的文件,并返回一个指向该文件的Stream对象。调用它的语法格式如下:File.Open(
24、path,FileMode,AccessMode,ShareMode)其中:(1)path,String类型,代表要打开文件的完整路径,绝对路径和相对路径均可。(2)FileMode,可选项,枚举类型,指定文件的打开方式,取值见表8.9。,8.2.2 文件操作,(3)AccessMode,可选项,枚举类型,指定文件的访问权限,取值见表8.10。,(4)ShareMode,可选项,枚举类型,指定文件的共享方式,取值见表8.11。,8.2.2 文件操作,例如,以只读方式打开C盘根文件夹中名为myfile.txt的文件,方法如下:dim fstream As Streamfstream=File.O
25、pen(“C:myfile.txt”,FileMode.Open,FileAccess.Read)上面的语句要求文件必须存在,若文件不存在,要求能创建该文件并以读/写方式打开C盘根文件夹中名为myfile.txt的文件,方法如下:dim fstream As Streamfstream=File.Open(C:myfile.txt,FileMode.OpenOrCreate,FileAccess.ReadWrite),8.2.2 文件操作,8)OpenRead方法OpenRead方法的功能是以读方式打开一个已经存在的文件,并返回一个指向该文件的Stream对象。若文件不存在或被打开,将产生异常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 文件 操作
链接地址:https://www.31ppt.com/p-5451980.html