FileSystem.FileOpen Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Opens a file for input or output. The My
feature gives you better productivity and performance in file I/O operations than FileOpen
. For more information, see 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)
Parameters
- FileNumber
- Int32
Required. Any valid file number. Use the FreeFile
function to obtain the next available file number.
- FileName
- String
Required. A string expression that specifies a file name - may include directory or folder, and drive.
- Mode
- OpenMode
Required. Enumeration specifying the file mode: Append
, Binary
, Input
, Output
, or Random
. For more information, see OpenMode .
- Access
- OpenAccess
Optional. Enumeration specifying the operations permitted on the open file: Read
, Write
, or ReadWrite
. Defaults to ReadWrite
. For more information, see OpenAccess .
- Share
- OpenShare
Optional. Enumeration specifying the operations not permitted on the open file by other processes: Shared
, Lock Read
, Lock Write
, and Lock Read Write
. Defaults to Lock Read Write
. For more information, see OpenShare .
- RecordLength
- Int32
Optional. Number less than or equal to 32,767 (bytes). For files opened for random access, this value is the record length. For sequential files, this value is the number of characters buffered.
Exceptions
Record length is negative (and not equal to -1).
FileName
is already open, or FileName
is invalid.
Examples
This example illustrates various uses of the FileOpen
function to enable input and output to a file.
The following code opens the file TestFile
in Input
mode.
FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)
This example opens the file in Binary
mode for writing operations only.
FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)
The following example opens the file in Random
mode. The file contains records of the structure 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
This code example opens the file in Output
mode; any process can read or write to file.
FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)
This code example opens the file in Binary
mode for reading; other processes cannot read file.
FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read,
OpenShare.LockRead)
Remarks
The FileOpen
function is provided for backward compatibility and may affect performance. For non-legacy applications, the My.Computer.FileSystem
object provides better performance. For more information, see File Access with Visual Basic.
You must open a file before any I/O operation can be performed on it. FileOpen
allocates a buffer for I/O to the file and determines the mode of access to use with the buffer.
Important
When writing to a file, an application may have to create a file, if the file to which it is trying to write does not exist. To do so, it needs permission for the directory in which the file is to be created. However, if the file specified by FileName
does exist, the application needs Write
permission only to the file itself. Wherever possible, to help improve security, create the file during deployment and grant Write
permission to that file only, instead of to the whole directory. To help improve security, write data to user directories instead of to the root directory or the Program Files directory.
The channel to open can be found by using the FreeFile()
function.
Important
The FileOpen
function requires Read
access from the FileIOPermissionAccess
enumeration, which may affect its execution in partial trust situations. For more information, see FileIOPermissionAccess enumeration.