FileSystem.FileOpen 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
打开输入或输出的文件。 此功能 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
必填。 指定文件名的字符串表达式 - 可能包括目录或文件夹和驱动器。
- Access
- OpenAccess
可选。 指定打开的文件上允许的操作的枚举: Read、 Write或 ReadWrite。 默认值为 ReadWrite. 有关更多信息,请参见OpenAccess。
- Share
- OpenShare
可选。 指定其他进程不允许对打开的文件执行的操作的枚举: Shared、 Lock Read、 Lock Write和 Lock 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 函数需要 Read 从 FileIOPermissionAccess 枚举进行访问,这可能会在部分信任情况下影响其执行。 有关详细信息,请参阅 FileIOPermissionAccess 枚举。
适用于
另请参阅
- FileClose(Int32[])
- FreeFile()
从 Visual Basic 写入 Visual Basic