正文

VBScript中的文件操作2009-11-10 11:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/enc999/50053.html

分享到:

3。对文件的操作
对文件的操作主要包括:
  • 创建文件
  • 写入文件
  • 读取文件
  • 移动、复制和删除文件

   1)创建文件

   创建文件主要有三种方法:

  • CreateTextFile 方法,如: 

Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)

     CreateTextFile方法的具体用法是这样的:

        object.CreateTextFile(filename[, overwrite[, unicode]])

      其中object参数为FSO对象名称;filename参数设置文件的路径;overwrite为布尔值,true代表可以覆盖,false代表不可覆盖;最后一个可选参数指明是否以Unicode储存文件,true代表使用unicode,false代表使用ASCII方式,省略时默认为ASCII方式。

  • OpenTextFile 方法

Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)

     OpenTextFile方法的具体使用方法:     

        object.OpenTextFile(filename[, iomode[, create[, format]]])

      其中object代表FSO对象的名称;
     
filename指明要创建的文件路径;
      iomode为可选参数,可用数字和详细模式指定,代表输入\输出模式

常数 描述
ForReading 1 以只读模式打开文件。不能对此文件进行写操作。
ForWriting 2 以只写方式打开文件。不能对此文件进行读操作。
ForAppending 8 打开文件并在文件末尾进行写操作。


      create为可选,以布尔值表示文件不存在时是否创建文件,true为允许创建,false为不允许,默认值为false;
      format为可选,可用数字和详细模式指定,代表以何种格式打开文件:

常数 描述
TristateUseDefault -2 以系统默认格式打开文件。
TristateTrue -1 以 Unicode 格式打开文件。
TristateFalse  0 以 ASCII 格式打开文件。

  • OpenAsTextStream 方法

Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)

   具体使用方法为:

        object.OpenAsTextStream([iomode, [format]])

   object代表FSO对象名称;
   iomode和format参数设置和OpenTextFile方法相同;  

   2)写入文件

创建文件后就可以写入文件了,一般分为以下三步:

  • 打开文本文件。
  • 写入数据。
  • 关闭文件。

创建文件时实际上会返回一个句柄,此时可以直接使用,写入文件可以有三种方法:

任务 方法
向打开的文本文件写数据,不用后续一个新行字符。 Write
向打开的文本文件写数据,后续一个新行字符。 WriteLine
向打开的文本文件写一个或多个空白行。 WriteBlankLines

下面示范这几种方法的具体使用:

function CreateFile()
{
   var fso, tf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   tf = fso.CreateTextFile("c:\\testfile.txt", true);
   

   // 写一行,并且带有新行字符。
   tf.WriteLine("Testing 1, 2, 3.") ;

   
// 向文件写三个新行字符。 
   tf.WriteBlankLines(3) ;


   
// 写一行。
   tf.Write ("This is a test.");


   tf.Close();
}

   3)读取文件

要从文本文件读取数据,则使用 TextStream 对象的 ReadReadLineReadAll 方法。下表描述了不同的任务应使用哪种方法。

任务 方法
从文件读取指定数量的字符。 Read
读取一整行(一直到但不包括新行字符)。 ReadLine
读取文本文件的整个内容。 ReadAll

如果使用 ReadReadLine 方法,并且想跳过数据的特殊部分,则使用 SkipSkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 LeftRightMid)来分析,连接等等。

下面的 VBScript 示例示范了如何打开文件,和如何写数据到文件中并从文件读取数据:

Sub ReadFiles
   Dim fso, f1, ts, s
   Const ForReading = 1
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
   
' 写一行。
   Response.Write "Writing file <br>"
   f1.WriteLine "Hello World"
   f1.WriteBlankLines(1)
   f1.Close
   '
读取文件的内容。
   Response.Write "Reading file <br>"
   Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
   s = ts.ReadLine
   Response.Write "File contents = '" & s & "'"
   ts.Close
End Sub

   4)移动、复制和删除文件 

FSO 对象模式各有两种方法移动、复制和删除文件,如下表所述。

任务 方法
移动文件 File.Move 或 FileSystemObject.MoveFile
复制文件 File.Copy 或 FileSystemObject.CopyFile
删除文件 File.Delete 或 FileSystemObject.DeleteFile

下面的 VBScript 示例,在驱动器 C 的根目录中创建一个文本文件,向其中写一些信息,然后把它移动到 \tmp 目录中,并在 \temp 中做一个备份,最后把它们从两个目录中删掉。

 

Sub ManipFiles
   Dim fso, f1, f2, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
   Response.Write "Writing file <br>"
   
'写一行。
   f1.Write ("This is a test.")
   '
关闭文件。
   f1.Close
   Response.Write "Moving file to c:\tmp <br>"
   
'获取 C 的根目录(C:\)中的文件的句柄。
   Set f2 = fso.GetFile("c:\testfile.txt")
   '
把文件移动到 \tmp 目录。
   f2.Move ("c:\tmp\testfile.txt")
   Response.Write "Copying file to c:\temp <br>"
   
'把文件复制到 \temp 目录。
   f2.Copy ("c:\temp\testfile.txt")
   Response.Write "Deleting files <br>"
   '
获得文件当前位置的句柄。
   Set f2 = fso.GetFile("c:\tmp\testfile.txt")
   Set f3 = fso.GetFile("c:\temp\testfile.txt")
   

文中源代码从Microsoft原版vbScript手册中选取,我的专业是电子技术,我很懒!

 

欢迎您到 ENC学习网 http://www.enc999.com 查看更多文章

阅读(3651) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册