<p>FSO系列之五**处理文件</p>
<p>读取文件<br />
要从文本文件读取数据,则使用 TextStream 对象的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任务应使用哪种方法。<br />
任务 方法<br />
从文件读取指定数量的字符。 Read<br />
读取一整行(一直到但不包括新行字符)。 ReadLine<br />
读取文本文件的整个内容。 ReadAll</p>
<p><br />
如果使用 Read 或 ReadLine 方法,并且想跳过数据的特殊部分,则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 Left、Right 和 Mid)来分析,连接等等。</p>
<p>下面的 VBScript 示例示范了如何打开文件,和如何写数据到文件中并从文件读取数据:</p>
<p><br />
Sub ReadFiles<br />
Dim fso, f1, ts, s<br />
Const ForReading = 1<br />
Set fso = CreateObject("Scripting.FileSystemObject")<br />
Set f1 = fso.CreateTextFile("c:testfile.txt", True)<br />
' 写一行。<br />
Response.Write "Writing file<br />
"<br />
f1.WriteLine "Hello World"<br />
f1.WriteBlankLines(1)<br />
f1.Close<br />
' 读取文件的内容。<br />
Response.Write "Reading file<br />
"<br />
Set ts = fso.OpenTextFile("c:testfile.txt", ForReading)<br />
s = ts.ReadLine<br />
Response.Write "File contents = '" & s & "'"<br />
ts.Close<br />
End Sub</p>
<p>下面的代码示范了在 JScript 中做同样的事:</p>
<p>function ReadFiles()<br />
{<br />
var fso, f1, ts, s;<br />
var ForReading = 1;<br />
fso = new ActiveXObject("Scripting.FileSystemObject");<br />
f1 = fso.CreateTextFile("c:\testfile.txt", true);<br />
// 写一行。<br />
Response.Write("Writing file<br />
");<br />
f1.WriteLine("Hello World");<br />
f1.WriteBlankLines(1);<br />
f1.Close();<br />
// 读取文件的内容。<br />
Response.Write("Reading file<br />
");<br />
ts = fso.OpenTextFile("c:\testfile.txt", ForReading);<br />
s = ts.ReadLine();<br />
Response.Write("File contents = '" + s + "'");<br />
ts.Close();<br />
}</p>
<p>移动、复制和删除文件<br />
FSO 对象模式各有两种方法移动、复制和删除文件,如下表所述。</p>
<p>任务 方法<br />
移动文件 File.Move 或 FileSystemObject.MoveFile<br />
复制文件 File.Copy 或 FileSystemObject.CopyFile<br />
删除文件 File.Delete 或 FileSystemObject.DeleteFile</p>
<p><br />
下面的 VBScript 示例,在驱动器 C 的根目录中创建一个文本文件,向其中写一些信息,然后把它移动到 tmp 目录中,并在 temp 中做一个备份,最后把它们从两个目录中删掉。</p>
<p>要运行下面的示例,需要先在驱动器 C 的根目录中创建 tmp 和 temp 目录:</p>
<p><br />
Sub ManipFiles<br />
Dim fso, f1, f2, s<br />
Set fso = CreateObject("Scripting.FileSystemObject")<br />
Set f1 = fso.CreateTextFile("c:testfile.txt", True)<br />
Response.Write "Writing file<br />
"<br />
' 写一行。<br />
f1.Write ("This is a test.")<br />
' 关闭文件。<br />
f1.Close<br />
Response.Write "Moving file to c:tmp<br />
"<br />
' 获取 C 的根目录(C:)中的文件的句柄。<br />
Set f2 = fso.GetFile("c:testfile.txt")<br />
' 把文件移动到 tmp 目录。<br />
f2.Move ("c:tmptestfile.txt")<br />
Response.Write "Copying file to c:temp<br />
"<br />
' 把文件复制到 temp 目录。<br />
f2.Copy ("c:temptestfile.txt")<br />
Response.Write "Deleting files<br />
"<br />
' 获得文件当前位置的句柄。<br />
Set f2 = fso.GetFile("c:tmptestfile.txt")<br />
Set f3 = fso.GetFile("c:temptestfile.txt")<br />
' 删除文件。<br />
f2.Delete<br />
f3.Delete<br />
Response.Write "All done!"<br />
End Sub</p>
<p>下面的代码示范了在 JScript 中做同样的事:</p>
<p>function ManipFiles()<br />
{<br />
var fso, f1, f2, s;<br />
fso = new ActiveXObject("Scripting.FileSystemObject");<br />
f1 = fso.CreateTextFile("c:\testfile.txt", true);<br />
Response.Write("Writing file<br />
");<br />
// 写一行。<br />
f1.Write("This is a test.");<br />
// 关闭文件。<br />
f1.Close();<br />
Response.Write("Moving file to c:\tmp<br />
");<br />
// 获取 C 的根</p>