在Visual Basic .NET中文件I/O选项 (2)
敬业的IT人
互联网
佚名
2008-5-23 19:39:11
Visual Basic .NET 函数还提供二进制文件访问,为使用变长字段时提供了更好的选择,而 FileSystemObject 对象(将在下一节介绍)则没有此功能。
Visual Basic .NET 文件 I/O 函数仅支持 String、Date、Integer、Long、Single、Double 和 Decimal 写入类型以及这些类型的结构和数组,这是使用这些函数时的一个缺点。此外,不能将类序列化,因此,在这些情况下直接使用 System.IO 类性能可能会更佳。
代码示例
如以下各例所示,使用 Visual Basic 运行时方法进行文件和目录操作是开发人员所熟悉的。
以下示例将检查文件是否存在,如果存在,则使用 FileCopy 函数将其复制到新文件。
Private Sub CopyFiles()
Dim checkFile As String
checkFile = Dir$("c: est.txt")
If checkFile = "test.txt"
FileCopy "c: est.txt", "c: ew.txt"
End If
End Sub
以下示例使用 FilePut 函数将数据写入文件,FilePut 函数与 Visual Basic 早期版本的 Put 函数相对应。结构 CustomerRecord 的三个记录被写入文件。
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
与 Microsoft.VisualBasic 命名空间提供的函数和方法类似,Visual Basic 早期版本的用户也应当熟悉 FileSystemObject 对象。在 Visual Basic .NET 中仍然可以使用此对象。
FileSystemObject (FSO) 模型将文件、目录和驱动器表示为 COM 对象,每个对象都有自己的属性和方法。您可以创建和操纵这些对象,并使用这些对象的属性来查找信息,如目录内容、文件大小、对象的创建时间等等。通过创建和访问 FileSystemObject 对象的实例,可以访问表示系统文件、目录和驱动器的对象。
FSO 对象模型位于 Microsoft 脚本运行时类型库 (Scrrun.dll) 中,支持通过 TextStream 对象创建和操纵文本文件。有关详细信息,请参阅 TextStream。FileStream 类围绕文件提供一个数据流,允许对文件系统进行同步或异步读写操作以及缓冲输入和输出,以改善性能。信息被写入缓冲区,只有当缓冲区已满或调用 Close 方法时,缓冲区中的内容才会被写入文件。
优点和缺点
FSO 的主要优点是,它可以将许多文件 I/O 函数集合到单个对象中。通过创建该对象的实例,可以访问对象的方法和属性。
下表列出了 FSO 对象模型的基本组件,并提供了与相应主题对应的链接,这些主题列出了适用于创建和操纵文件、驱动器及目录的属性和方法。
对象 说明
FileSystemObject 创建与删除驱动器、文件夹和文件,获取其信息并对其进行常规操作。与此对象相关的许多方法都与其他对象中的相应方法相同。
Drive 获取关于连接到系统的驱动器的信息,如可用空间及其共享名称。
File 创建,删除或移动文件,以及在系统中查询文件的名称、路径和其他信息。
Folder 创建,删除或移动文件夹,以及在系统中查询文件夹的名称、路径和其他信息。
TextStream 读写文本文件。
FSO 对象模型也适用于线程。它提供了一个用于异步 I/O 的构造函数,如当使用 BeginRead 和 BeginWrite 方法时,该函数可使主线程继续,允许用户稍后再处理数据。多个 I/O 请求可以同时挂起。
但是,FSO 也有一些不足之处。如上所述,它只能对文本文件进行操作。要操纵二进制文件,您必须使用指针指向内存地址或字节数组,但 FSO 对象不支持此操作。
此外,当您读取或写入大量内容时,存储在缓冲区中的信息可能会产生很高的内存命中率。还有,您不能管理许可权限或文件和文件夹属性。
- 最新文章
- 在Visual Basic .NET中文件I/O选项 (1)[05-23]
- 使用VB.NET中的动态属性[05-23]
- 教你在 VB.NET里使用动态属性[05-23]
- 创新中的VB.NET[05-23]
- VB.net 编码规范(也适用于C#)[05-23]
- VB.NET中访问数据方法大全[05-23]
- 相关文章
