Поделиться через


FileSystem.FileOpen Метод

Определение

Открывает файл для ввода или вывода. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с 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, Binary, Input, Output или Random. Дополнительные сведения см. в разделе OpenMode.

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 функции для включения входных и выходных данных в файл.

Следующий код открывает файл TestFile в Input режиме .

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.

Перед выполнением с ним любой операции ввода-вывода необходимо открыть файл. FileOpen выделяет буфер для операций ввода-вывода для файла и определяет режим доступа для использования с буфером.

Важно!

При записи в файл приложению может потребоваться создать файл, если файл, в который оно пытается записать, не существует. Для этого ему требуется разрешение для каталога, в котором должен быть создан файл. Однако если файл, указанный параметром FileName , существует, приложению требуется Write разрешение только на сам файл. Везде, где это возможно, чтобы повысить безопасность, создайте файл во время развертывания и предоставьте Write разрешение только для этого файла, а не для всего каталога. Чтобы повысить безопасность, записывайте данные в пользовательские каталоги, а не в корневой каталог или каталог Program Files.

Канал для открытия можно найти с помощью FreeFile() функции .

Важно!

Функции FileOpen требуется Read доступ из перечисления FileIOPermissionAccess , что может повлиять на ее выполнение в ситуациях частичного доверия. Дополнительные сведения см. в разделе FileIOPermissionAccess Перечисление.

Применяется к

См. также раздел