FileSystem.FileOpen 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
打开一个文件以进行输入或输出。 相比 FileOpen
,My
功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 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
提供更好的性能。 有关详细信息,请参阅 Visual Basic 中的文件访问。
必须先打开文件,然后才能对该文件执行任何 I/O 操作。 FileOpen
为文件分配用于 I/O 的缓冲区,并确定要与缓冲区一起使用的访问模式。
重要
写入文件时,如果应用程序尝试写入的文件不存在,则应用程序可能必须创建文件。 为此,它需要具有在其中创建文件的目录的权限。 但是,如果 指定的 FileName
文件确实存在,则应用程序只需要 Write
对文件本身具有权限。 为了帮助提高安全性,请在部署期间创建文件,并仅向该文件授予权限,而不是向整个目录授予 Write
权限。 为了帮助提高安全性,请将数据写入用户目录,而不是写入根目录或 Program Files 目录。
可以使用 函数找到要打开的 FreeFile()
通道。
重要
函数 FileOpen
需要 Read
从 FileIOPermissionAccess
枚举访问,这可能会影响其在部分信任情况下的执行。 有关详细信息,请参阅 FileIOPermissionAccess。