4.3 File Access文件系统存取组件
File Access组件提供了可用来访问计算机文件系统的方法和属性。要创建并读写一个文本文件,应当使用FileSystemObject和TextStream对象。首先需要使用File Access组件创建FileSystemObject对象的实例,然后调用FileSystemObject对象的CreaterTextFile()方法返回一个TextStream对象实例,最后用TextSream对象的方法对文件进行读写操作。
4.3.1 建立文件系统对象
建立文件系统对象是使用Server.CreateObject方法来创建一个FileSystemObject对象。语法格式:Set对象名=Server.CreateObject("Scripting.FileSystemObject")
该语法用于创建对象名指定的一个FileSystemObject对象。如下代码创建了一个名为Fso的FileSystemObject对象。
4.3.2 创建File对象与打开File对象
使用File Access组件所创建的FileSystemObject对象提供有两种最常用的方法:CreateTextFile方法和OpenTextFile方法。前者用来创建文件,创建FileSystemObject对象的子对象File;后者用来打开文件(子对象File)并读写文本文件。
用CreateTextFile方法可获得指定的文件名并创建该文件,它返回一个TextStream对象,并可以用该对象在文件被创建后操作该文件。CreateTextFile方法的语法如下。
其中各参数的意义如下:
(1)Filename:包含文件路径名的字符串,可以是文件的全路径名,包括驱动器名和目录名,或者也可以只是文件名,如果只包含文件名的话,文件将被创建在站点的根目录下。
(2)Overwrite:布尔量,设置成false时可以防止FileSystemObject对象在创建一个新文件时删除已存在的文件,该参数是可选的,如果没有赋值系统默认为true,具有相同文件名的已有文件会被删掉。
(3)Unicode:可选参数。布尔值指明是否以Unicode或ASCII文件格式创建文件。如果以Unicode文件格式创建文件,则该值为true;如果以ASCII文件格式创建文件,则该值为false。如果省略此部分,则假定创建ASCII文件。
以下代码建立了MyFile文件,创建了一个对象名为Myfile的File对象,并且该对象直接指向新建文件MyFile.txt。
与CreateTextFile方法不同,OpenTextFile方法用于打开已经建立的文本文件、访问所指定的文件并根据参数对文件进行各种不同的操作。OpenTextFile方法的语法如下。
其中各参数意义如下:
(1)Filename:必需的变量,同CreateTextFile的Filename。
(2)IOmode:可选的常量,有两个取值ForReading(=1)或ForAppending(=8),如果mode为1,文件以只读方式打开;如果为8,则文件以追加的方式打开。
(3)Create:可选的布尔量,用于指定当要打开文件不存在时应做的操作,如果其值为true,当文件不存在时就自动创建一个空的文件;如果为false,就会在文件没找到时产生一个出错信息,其默认值是false。
(4)Format可选值,有三种选择值-2(系统缺省)、-1(Unicode)和0(ASCII)分别指定文件的格式。
以下例子打开了一个“info.txt”文件。
4.3.3 File对象与FileSystemObject对象的方法
用CreateTextFile方法和OpenTextFile方法创建了File对象后也就是建立了文本文件,可以用对象的方法对文件进行操作,读写文本文件。
(1)Close()方法:关闭流以及对应的文本文件。如:MyFile.Close。
(2)ReadLine()方法:将一整行的字符读入一个字符串中。如:MyFile.ReadLine。
(3)Read(Num)方法:指定从光标的当前位置开始从文本文件中读取一定数目的字符。如:MyFile.Read(30)。
(4)Readall()方法:将整个流读入一个字符串中。如:Mystring=MyFile.ReadAllo。
(5)WriteLine()方法:将一行文本写入流中,如:MyFile.WriteLine变量名。
(6)Write(text)方法:将一个字符串写入流中。如:MyFile.Write("YulangGates")。
(7)WriteBlanklines(num)方法:将一定数目的空行写入流中。
(8)Skip(Num)方法:在流中,将光标的位置移动一定数目的字符串长度。
(9)SkipLines(num)方法:在流中,将光标移动一定数目的行数。
2.FileSystemObject对象的方法
(1)MoveFile方法:该方法用于更名文件。其语法格式如下:
如代码Myfso.MoveFile、Myfile.txt、Newfile.txt就将MyLYB.txt文件更名为NewMyfile.txta。
(2)DeleteFile方法:该方法用于删除文件。其语法格式如下:
如代码Myfso.DeleteFile、MyFile.txt就删除了MyLYB.txt文件。
(3)CopyFile方法:该方法用于复制文件。其语法格式如下:
4.3.4 File对象属性
File对象具有如下四个属性。
(1)AtEndOfLine:只读布尔量。当光标在当前行的末尾时,其值为true,反之则为false。
(2)AtEndOfStream:只读布尔量。当光标在流的末尾时,其值为true,否则为false。
(3)Column:只读的整数。统计从行首到当前光标位置之间的字符数。
(4)Line:只读的整数。指明光标所在行在整个文件中的行号。
【例4.3.1】一个访问“C:\MyFile.TXT”的程序。
【例4.3.2】一个写“C:\MyFile.TXT”的程序。