有经验的 Visual Basic 开发人员最初可能会认为,Visual Basic .NET 中的变化使本来已经熟悉的领域变得陌生而难以驾驭。其实,过去开发的成果仍然可以使用。例如,Visual Basic 运行时文件 I/O 方法就是大家比较熟悉的。同样,以前曾涉猎过 FileSystemObject 对象的开发人员也可以继续在这一领域畅游。尽管公共语言运行时领域可能让人感到陌生并且到处都是以对象为中心的“怪物”,但同时,它提供的功能却极具诱惑力,例如 FileSystemWatcher 或 FileIOPermissions 类中的新功能。
事实上,唯一让 Visual Basic .NET 开发人员望而却步的是如何从这三种方法中进行选择。对许多应用
程序而言,对文件和目录进行操作是最重要的,但是 Visual Basic .NET 所提供的灵活方法可能会使人感到困惑,并且会提出下列
问题:Visual Basic .NET 提供什么样的文件访问?何时使用 FileSystemObject 对象?使用公共语言运行时中的方法有哪些好处?是否需要专门使用一种方法?如何选择方法?
Visual Basic .NET 中的文件方法
让我们先看看 Microsoft.VisualBasic 命名空间,这可以为那些被全新的 .NET 领域吓坏的开发人员带来一些安慰和信心。命名空间包含许多熟悉的函数和方法。除了部分名称有少许改动外,大部分名称仍保持不变,如 Dir、Input、Print、Seek、Write 等等。
在选择运行时函数时,主要应考虑写入文件或从文件中收集的信息的类型。Visual Basic .NET 为三种类型的文件提供了访问方法,每种方法适用于一种特定的数据类型:二进制、顺序和随机。
二进制访问,允许您以任意方式存储和访问数据,这种方法对于变长字段尤为有用。
随机访问,允许您以记录的方式存储和访问信息,这种方法假定记录是等长的。顺序访问,允许您在文本文件中读取和写入字符串。
这些不同类型的文件访问所使用的函数发生了一些变化。最显著的变化是用 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)
总之,对于有经验的 Visual Basic
程序员来说,这一方面应该很容易掌握。下表列出了 Visual Basic .NET 中用于文件和目录操作的函数,并提供了介绍各个函数的相应主题的
链接。
函数 说明
CurDir 返回表示当前目录的 String 值。
Dir 返回 String 值,表示与指定模式或文件属性相匹配的文件名、目录名或文件夹名,或者表示驱动器的卷标。
EOF 当为随机输入或顺序输入而打开的文件到达末尾时,返回 Boolean 值 True。
FileClose 将 I/O 写入到使用 FileOpen 函数打开的文件。
FileCopy 复制文件并保留原文件。
FileDateTime 返回 Date 值,表明最近一次修改文件的日期和时间。
FileLen 返回 Long 值,表明文件的长度(字节)。
FileOpen 打开用于输入或输出的文件。
FreeFile 返回 Integer 值,指定 FileOpen 函数可以使用的下一个文件的编号。
GetAttr 返回 FileAttribute 值,表示文件、文件夹或目录的属性。
Inpu