第十章文件管理及操作10.1 文件系统的基本操作VB提供了一些用于处理文件系统的语句,使用这些语句可以在VB应用程序中进行更改当前目录、建立或删除目录、删除文件等基本操作。
目录操作1.获取指定驭动器的当前路径。
要获取某驱动器的当前路径,可以使用CurDir函数,它的语法是:CurDir [drive].参数drive是指要获取信息的驱动器名称,如果忽略该参数,则CurDir函数返回当前驱动器的当前路径。
例如,如果驱动器E;的当前路径为“E: \Too1\Qicq”,则如下语句将在窗体上显示“E:\Too1\Qicq”.Print CurDir(“E”)。
2.更改当前驱动器。
使用ChDrive语句可以更改当前驱动器,其语法为:ChDrive drive.参数drive为要指定为当前驱动器的名称,例如,将驱动器A:指定为当前驱动器的语句为:ChDrive “A”.3.更改当前路径。
使用ChDir语句可以更改当前路径,其语法为:ChDir Path.参数Path为要指定的路径,如果在路径中没有指定驱动器的名称,则表示驱动器为当前驱动器。
例如,将路径C: \Windows指定为当前路径的语句为:ChDir “C:\Windows”.4.建立与删除目录。
使用MkDir语句可以创建一个新的目录,其语法为:MktDir Path.参数Path用来指定所要创建的目录以及目录所在的路径。
Path可以包含驱动器。
如果没有指定路径,则MkDir会在当前路径下创建新的目录。
例如:MKDir “C:\aa”在C盘中创建目录aaMKDir “C:\Windows\bb”在C盘windows目录中创建子目录bbMKDir “CC”在当前路径下创建目录cc使用RmDir语句可以删除某一空目录,其语法为:RmDir Path.例如:MKDir “C:\aa”删除C盘中目录aaMKDir “C:\Windows\bb”删除C盘windows目录中的子目录bbMKDir “CC”删除当前路径下创建目录cc注意:RmDir语句只能用来删除空的目录,如果目录中还包含有子目录或文件,则必须先删除子目录和文件。
10.1.2 文件操作文件的操作包括拷贝文件、删除文件、重命名文件和设置文件属性等。
在操作文件时,文件必须是关闭的,否则会产生运行错误。
下面逐一介绍VB中的各种文件操作语句。
1.拷贝文件。
使用PileCopy语句可以在磁盘介质间拷贝文件,其语法为:FileCopy Source. Destination.参数Source用来指定源文件及其路径。
参数Destination用来指定目标文件及其路径。
如果没有指定路径,则默认路径为当前路径。
例如:将C盘Windows目录中的文件拷贝到F盘,并且文件名变为 FileCopy“C:\Windows\,”F:\将C盘Windows目中中的文件拷贝到当前路径下,且仍使用原名FileCopy “C:\windows\,”2.删除文件。
使用Kill语句可以删除磁盘中己存在的文件,其语法为:Kill PathName.参数PathName用来指定所要删除的文件及其路径。
如果没有指定路径,会删除当前路径下的文件。
Kill语句支持多字符(*)和单字符(?)等通配符来指定多重文件。
例如:Kill “D:\vcd\mm.dat”删除D盘Vcd目录中的mm.dat文件Kill “Capter1.doc”删除当前路径中的Capter1.doc文件Kill “E:\temp\*.txt”删除E盘Temp目录中的所有后缀为TXT的文件Kill “E:\temp\*.*”删除E盘Temp目录中的所有文件3.重命名文件。
使用Name语句可以重命名文件或移动文件,其语法为:Name OldPathName As NewPathName.参数OldPathname用来指定所要重命名的文件及其路径,参数NewPathname用来指定文件的新名称及其路径。
如果NewPathName参数指定的路径与OldPathName参数指定的路径不同,则文件将被移动到新的路径下。
例如:将D盘中的文件oicq99b.exe重命名oicq.exeName “D:\oicc99b.exe” AS“D:\oci q.exe”将D盘中的文件oicq99b.exe移动到E盘的Temp目录中,并重命名为oicq.exeName“D:\ociq99b.exe” AS “E:\Temp\oicq.exe”Name语句对目录也有效,例如:将D盘中的Tocl目录重命名为TTName “D:\Tool” As “D:\TT”将E盘的oicq目录移动到D盘的Tools目中Name “E:\Oicq”As “D:\Tools\Oicq”4.设贵文件的属性。
使用SetAttr语句可以设置文件或目录的属性,其语法为:SetAttr PathName, VbFileAttribute.参数Pathname用来指定所要设置属性的文件或目录,参数VbFileAtrribute用来指定文件或目录的属性,其取值及含义如表10.1所示。
注意:要删除和设置属性的文件必须是关闭的,否则会产生运行错误。
VBFileAttribute参数的取值也可以是各取值的和,这一点与在前面介绍的通用对话框的Flags属性类似。
例如:设置D盘Temp目录中mytext.txt文件的属性为只读setAttr“D:Temp\mytext.txt”,1设置D盘Temp目录的属性为隐藏SetAttr “D:\Temp”,2设置E盘中yy.jpg文件的属性为只读和隐藏SetAttr “E:\yy.jpg”,3函数GetAttr用来返回文件的属性设置,例如,如果GetAttr(E:\yy.jpg)的返回值为1,则表明文件yy:jPg的属性为只读。
如果GetAttr函数的返回值为16,则表明是目录。
5.获取文件的大小。
使用Filelen函数可以获取文件的大小,其语法为:Filelen(PathName)参数PathName用来指定要获取大小的文件及其路径。
函数的返回值为一个长整型值,代表文件的大小,单位是字节。
例如:显示E盘中forml.frm文件的大小,单位为字节。
Print FileLen(“E:\form1.frm”)10.2.1 驱动器列表框驱动器列表框用来显示当前系统所安装的驱动器,例如,软驱、硬盘的各分区和光驱等。
驱动器列表框是一个下拉式列表框,平时只显示一个驱动器(在默认情况下,显示的是当前驱动器的名称)。
单击列表框右边的向下箭头,就会下拉出一个驱动器列表,列出当前系统安装的所有驱动器,以供用户选择,如图10.1所示。
驱动器列表框的最重要的属性是Drive该属性用来在运行时设置或返回所选择的驱动器,在设计时不可用。
例如,将如下语句添加到窗体的Load事件中,则程序启动后驱动器框中显示的将是指定的驱动器E:而不是当前驱动器。
Drivel.Drive=“E”在驱动器列表框中选择驱动器并不能自动更该系统的当前驱动器,要使用户在驰动器列表框中的操作影响到系统,还需要编写一定的代码。
改变驱动器列表框的Drive属性的设置值会触发它的Change事件。
因此,在Change事件过程中,可用ChDrive语句来更改系统当前驱动器,语句如下:ChDrive Drivel.Drive10.2.2 目录列表框目录列表框用于显示当前驱动器上的目录结构。
它以根目录开头,显示的目录按照子目录的层次依次缩进,如图10.2所示。
双击某一目录,可打开该目录,即显示该目录中的所有子目录。
被打开的目录的图标为一个打开状的文件夹。
双击打开的目录可将其关闭,其中的子目录不再显示出来,并且目录的图标变成一个关闭状的文件夹。
目录列表框的最重要的属性是Path,该属性用来在运行时设置或返回所选择的路径,在设计时不可用。
同样,改变目录列表框的Path属性的设置值会触发它的Change事件。
因此,在Change 事件过程中,可用ChDir语句来更改系统当前路径,语句如下:ChDir Dirl.Path目录列表框只能显示当前驱动器下的目录,如果要显示其他驱动器下的目录结构,则必须使用Path属性来设置它的路径,最佳选择是将目录列表框与驱动器列表框配合使用。
实例10.1目录列表框与驱动器列表框的配合使用。
在窗体上放置一个驱动器列表框、一个目录列表框、一个标签控件和一个文本框控件。
如图10.3所示,其中各对象属性的设置如表10.2所示。
运行程序,在驱动器列表框中选择驱动器,则目录列表框中的目录会同步发生相应的改变;在目录列表框中选择目录,则文本框中会显示出当前所选择的路径,如图10.4所示。
10.2.3 文件列表框文件列表框用来显示当前目录中的文件列表。
文件列表框有4个重要的属性,下面分别介绍。
1.Path属性。
Path属性用来设置或返回列表框中所显示文件的目录,在设计时不可用。
文件列表框常常与目录列表框和驱动器列表框一起使用。
在目录列表框的Change事件中添加如下语句:File1.Path=Dirl.Path即可将目录列表框与文件列表框关联起来,当在目录列表框中选择一个目录时,文件列表框中会自动同步显示出该目录中的所有文件。
当文件列表框的Path属性改变后,会触发它的PathChange事件。
2.Patted属性。
Patten属性用来设置或返回文件列表框中所显示的文件类型,该属性既可以在设计时通过【属性】窗口设置,也可以在代码中设置。
Patters属性的默认值为*、*,即显示所有文件。
当Patters属性改变后,会触发文件列表框的pattenChange事件。
例如,要使文件列表框中只显示文本文件,则应该将Patten属性的值设置为“ *.TXT”,要设置多个文件类型,可以使用分号(:)来分隔。
例如:File1.Pattern=“.DOC”只显示word文档文件File1.Pattern=“*.EXE;*.COM”显示EXE和COM文件File1.Pattern=“*BMP;*GIF;*JPG”显示几种图形文件3. FileName属性。
FileNarne属性用来设置或返回文件列表框中所选文件的路径和文件名,如果没有选择任何文件,则返回一个空字符串。
FileNarne属性在设计时不可用。
例如:Print File1.FileName 显示用户所选择的文件在文件列表框中只显示C盘windows目录中的文件File1.FileName=“C:\windows\”在文件列表框中显示C盘windows目录中的EXE文件File1.FileName=“C:\windows\*.exe”4.与文件属性有关的属性。
表10.3中列出了与文件属性有关的4个属性,它们用来决定在文件列表框中显示哪一类属性的文件。