FileSystem.FileOpen 方法

定义

打开输入或输出的文件。 此功能 My 可让你在文件 I/O 操作 FileOpen中提高工作效率和性能。 有关详细信息,请参阅 FileSystem

public static void FileOpen(int FileNumber, string FileName, Microsoft.VisualBasic.OpenMode Mode, Microsoft.VisualBasic.OpenAccess Access = Microsoft.VisualBasic.OpenAccess.Default, Microsoft.VisualBasic.OpenShare Share = Microsoft.VisualBasic.OpenShare.Default, int RecordLength = -1);
static member FileOpen : int * string * Microsoft.VisualBasic.OpenMode * Microsoft.VisualBasic.OpenAccess * Microsoft.VisualBasic.OpenShare * int -> unit
Public Sub FileOpen (FileNumber As Integer, FileName As String, Mode As OpenMode, Optional Access As OpenAccess = Microsoft.VisualBasic.OpenAccess.Default, Optional Share As OpenShare = Microsoft.VisualBasic.OpenShare.Default, Optional RecordLength As Integer = -1)

参数

FileNumber
Int32

必填。 任何有效的文件编号。 使用该 FreeFile 函数获取下一个可用文件编号。

FileName
String

必填。 指定文件名的字符串表达式 - 可能包括目录或文件夹和驱动器。

Mode
OpenMode

必填。 指定文件模式的枚举:Append、、BinaryInputOutputRandom。 有关更多信息,请参见OpenMode

Access
OpenAccess

可选。 指定打开的文件上允许的操作的枚举: ReadWriteReadWrite。 默认值为 ReadWrite. 有关更多信息,请参见OpenAccess

Share
OpenShare

可选。 指定其他进程不允许对打开的文件执行的操作的枚举: SharedLock ReadLock WriteLock Read Write。 默认值为 Lock Read Write. 有关更多信息,请参见OpenShare

RecordLength
Int32

可选。 小于或等于 32,767(字节)的数。 对于以随机访问模式打开的文件,此值为记录长度。 对于序列文件,此值为缓冲的字符数。

例外

记录长度为负数(且不等于 -1)。

FileName 已打开或 FileName 无效。

示例

此示例说明了函数的各种 FileOpen 用法,以启用文件的输入和输出。

以下代码以Input模式打开文件TestFile

FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)

本示例以模式打开 Binary 文件,以便仅写入操作。

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)

以下示例以 Random 模式打开文件。 该文件包含结构的 Person记录。

Structure Person
    <VBFixedString(30)> Dim Name As String
    Dim ID As Integer
End Structure
Public Sub ExampleMethod()
    ' Count 30 for the string, plus 4 for the integer.
    FileOpen(1, "TESTFILE", OpenMode.Random, , , 34)
    ' Close before reopening in another mode.
    FileClose(1)
End Sub

此代码示例以 Output 模式打开文件;任何进程都可以读取或写入文件。

FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)

此代码示例以 Binary 读取模式打开文件;其他进程无法读取文件。

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read,
   OpenShare.LockRead)

注解

FileOpen 函数用于向后兼容性,可能会影响性能。 对于非旧应用程序,该 My.Computer.FileSystem 对象可提供更好的性能。 有关详细信息,请参阅 File Access with Visual Basic

只有打开文件后才能对其执行任何 I/O 操作。 FileOpen 为文件分配 I/O 的缓冲区,并确定用于缓冲区的访问模式。

Important

写入文件时,如果应用程序尝试写入的文件不存在,则应用程序可能需要创建文件。 为此,需要对要在其中创建文件的目录具有权限。 但是,如果文件 FileName 确实存在,则应用程序只需对文件本身具有 Write 权限。 在可能的情况下,为了帮助提高安全性,请在部署期间创建文件,并仅向该文件授予 Write 权限,而不是授予整个目录的权限。 为了帮助提高安全性,将数据写入用户目录,而不是写入根目录或 Program Files 目录。

可以使用函数找到要打开的 FreeFile() 通道。

Important

FileOpen 函数需要 ReadFileIOPermissionAccess 枚举进行访问,这可能会在部分信任情况下影响其执行。 有关详细信息,请参阅 FileIOPermissionAccess 枚举。

适用于

另请参阅