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


Функция FileOpen

Обновлен: Ноябрь 2007

Открывает файл для ввода или вывода.

Функция My обеспечивает большую производительность и быстродействие в операциях файлового ввода-вывода, чем FileOpen. Дополнительные сведения см. в разделе Объект My.Computer.FileSystem.

Public Sub FileOpen( _
   ByVal FileNumber As Integer, _
   ByVal FileName As String, _
   ByVal Mode As OpenMode, _
   Optional ByVal Access As OpenAccess = OpenAccess.Default, _
   Optional ByVal Share As OpenShare = OpenShare.Default, _
   Optional ByVal RecordLength As Integer = -1 _
)

Параметры

  • FileNumber
    Обязательно. Любой допустимый номер файла. Используйте функцию FreeFile для получения следующего свободного номера файла.

  • FileName
    Обязательно. Выражение типа String, в котором указывается имя файла, может включать каталог или папку, а также диск.

  • Mode
    Обязательно. Перечисление, определяющее режим файла: Append, Binary, Input, Output или Random. (Дополнительные сведения см. в разделе Перечисление OpenMode.)

  • Access
    Необязательно. Перечисление операций, разрешенных для работы с открытым файлом: Read, Write или ReadWrite. По умолчанию используется значение ReadWrite. (Дополнительные сведения см. в разделе Перечисление OpenAccess.)

  • Share
    Необязательно. Перечисление операций, не разрешенных другим процессам при работе с открытым файлом: Shared, Lock Read, Lock Write и Lock Read Write. По умолчанию используется значение Lock Read Write. (Дополнительные сведения см. в разделе Перечисление OpenShare.)

  • RecordLength
    Необязательно. Число, не превышающее 32 767 (байт). Для файлов, открытых для произвольного доступа, это значение является длиной записи. Для последовательных файлов — это число символов в буфере.

Исключения

Тип исключения

Номер ошибки

Условие

ArgumentException

5

Недопустимое ключевое слово AccessShare или Mode.

ArgumentException

5

Файл WriteOnly открыт для Input.

ArgumentException

5

Файл ReadOnly открыт для Output.

ArgumentException

5

Файл ReadOnly открыт для Append.

ArgumentException

5

Отрицательная длина записи (не равная –1).

IOException

52

Недопустимый FileNumber (<–1 или >255) или FileNumber уже используется.

IOException

55

Файл FileName уже открыт, или FileName является недопустимым.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует изменить такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

Заметки

Функция FileOpen предоставляется для обратной совместимости и может повлиять на производительность. Для неустаревших версий приложений объект My.Computer.FileSystem предоставляет более высокую производительность. Дополнительные сведения см. в разделе Доступ к файлам с помощью Visual Basic.

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

afh37kh8.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

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

Номер открываемого канала можно найти с помощью функции FreeFile().

afh37kh8.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

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

Пример

В данном примере показаны различные варианты использования функции 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)

Примечания для разработчиков приложений для интеллектуальных устройств

Данная функция не поддерживается.

Требования

Пространство имен:Microsoft.VisualBasic

**Модуль:**FileSystem

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Функция FileClose

Функция FreeFile

Другие ресурсы

Чтение из файлов в Visual Basic

Запись в файлы в Visual Basic