这些不同类型的文件访问所使用的函数发生了一些变化。最显著的变化是用 FilePut/FilePutObject 和 FileGet/FileGetObject 函数代替 Put 和 Get 函数。在 Visual Basic .NET 中,FilePut 和 FileGet 映射到 Put 和 Get 函数;FilePutObject 和 FileGetObject 用于将 Object 类型(等价于 Visual Basic 早期版本中的 Variant 类型)的对象写入文件。
例如,下面是 Visual Basic 6.0 的代码:
Dim Person As Variant If IdentifyPeopleByName Then Person = "我的姓名 1" Else Person = 564 EndIf Put #1, , Person 在 Visual Basic .NET 中变为:
FileOpen(1, "c:\test.txt", OpenMode.Binary) Dim Person As Object If IdentifyPeopleByName Then Person = "我的姓名 1" Else Person = 564 EndIf FilePutObject(1, Person) FileClose(1)
Private Sub CopyFiles() Dim checkFile As String checkFile = Dir$("c:\test.txt") If checkFile = "test.txt" FileCopy "c:\test.txt", "c:\new.txt" End If End Sub
Structure CustomerRecord Public OrderNumber As Integer Public Name As String Public OrderDate As Date End Structure
Sub WriteData() Dim MyRecord As CustomerRecord Dim RecordNumber As Integer Dim RecordDate As Date ' 打开文件进行随机访问。 FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary) For RecordNumber = 1 To 3 ' 循环 3 次。 MyRecord.OrderNumber = RecordNumber ' 定义 OrderNumber。 MyRecord.OrderDate = RecordDate ' 定义 OrderDate。 MyRecord.Name = "我的姓名" & RecordNumber ' 创建字符串。 FilePut(1, MyRecord) ' 将记录写入文件。 Next RecordNumber FileClose(1) End Sub FileSystemObject
在 COM 选项卡上,选择 Microsoft Scripting Runtime(Microsoft 脚本运行时),单击 Select(选择),然后单击 OK(确定)。 现在,FSO 将显示在 Object Browser(对象浏览器)中的 Interop.Scripting 节点内。
使用 FileSystemObject 进行编程:
使用 CreateObject 方法创建一个 FileSystemObject 对象。
将一个变量定义为 FileSystemObject 对象。例如:
Dim MyFileStream as Scripting.New FileSystemObject。
对新创建的对象使用相应的方法。
访问对象的属性。
代码示例
以下示例使用 FileSystemObject 对象的实例来读取文件并写入文件内容。
Public Class UsesScripting Public Shared Sub Main() Dim fileSystem As New Scripting.FileSystemObject() Dim file As Scripting.TextStream file = fileSystem.OpenTextFile("c:\test.txt", _ Scripting.IOMode.ForReading, False,_ Scripting.Tristate.TristateUseDefault) Dim contents As String = file.ReadAll() Console.WriteLine(contents) file.Close() End Sub
Imports System Imports System.IO Function ReadTextFile(ByVal path As String) As String Dim sr As System.IO.StreamReader Dim Contents As String sr = New StreamReader(path) Contents = sr.ReadToEnd() sr.Close() Return Contents End Function
以下代码与前面的示例顺序相反,它使用与 StreamWriter 类相同的方法来写入文本文件。
Imports System Imports System.IO Sub WriteTextFile(ByVal path As String, ByVal value As String) Dim sr As StreamWriter Dim Contents As String sr = New StreamWriter(path) sr.Write(value) sr.Close() End Sub
' 添加事件处理程序以监视文件创建。 AddHandler fw.Created, _ New System.IO.FileSystemEventHandler(AddressOf OnFileEvent) fw.EnableRaisingEvents = True Console.ReadLine() End Sub
' 新文件创建时生成的事件。 Shared Sub OnFileEvent(ByVal source As Object, ByVal e As _ System.IO.FileSystemEventArgs) Console.WriteLine("在 C: 中创建的新文件" & e.FullPath) End Sub
Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization Public Module Module1 Public Class class1 Public classvar As Integer End Class
Sub Main() Try Dim Result As Object ' 创建并初始化要保存的类(序列化)。 Dim myclass1 As New class1() myclass1.classvar = 7 ' 创建序列化程序。 Dim xs As New XmlSerializer(GetType(class1)) ' 创建文件流。 Dim FStream As New IO.FileStream("c:\xyz.txt", _ IO.FileMode.OpenOrCreate) ' 使用序列化程序编写类。 xs.Serialize(FStream, myclass1) ' 将文件流的位置重置到开始位置。 Fstream.seek(0, IO.SeekOrigin.Begin) ' 通过还原序列化到对象中来完成在类中的读取操作。 Result = xs.Deserialize(FStream) FStream.Close()
' 将文件流作为文本打开,以 XML 格式读取/打印类。 console.WriteLine(readxml())
Catch e As Exception console.WriteLine(e.ToString) End Try End Sub
Function ReadXML() As String Dim MyReader As StreamReader = File.OpenText("c:\xyz.txt") Dim str As String Dim al As ArrayList = New ArrayList()
Do str = MyReader.ReadLine() If str <> Nothing Then ReadXML &= str & vbcrlf End If Loop Until str = Nothing Return ReadXML End Function End Module
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved 京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089