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
Optional. Перечисление, указывающее операции, разрешенные в открытом файле: Read, Writeили ReadWrite. По умолчанию — ReadWrite. Дополнительные сведения см. в статье OpenAccess.
- Share
- OpenShare
Optional. Перечисление, указывающее операции, которые не разрешены для открытого файла другими процессами: Shared, , Lock ReadLock Writeи Lock Read Write. По умолчанию — Lock Read Write. Дополнительные сведения см. в статье OpenShare.
- RecordLength
- Int32
Optional. Число меньше или равное 32767 (байт). Для файлов, открытых для прямого доступа это значение равно значению длины записи. Для файлов с последовательным доступом значение представляет собой число буферизуемых символов.
Исключения
Длина записи отрицательная (и не равна -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 объект обеспечивает более высокую производительность. Дополнительные сведения см. в разделе File Access с Visual Basic.
Перед тем как выполнять операции ввода-вывода для файла, его необходимо открыть.
FileOpen выделяет буфер для ввода-вывода в файл и определяет режим доступа к буферу.
Important
При записи в файл приложение может потребоваться создать файл, если файл, в который он пытается написать, не существует. Для этого требуется разрешение для каталога, в котором будет создан файл. Однако если файл, указанный в FileName файле, существует, приложению требуется Write разрешение только для самого файла. Если это возможно, чтобы повысить безопасность, создайте файл во время развертывания и предоставьте Write разрешение только для этого файла, а не всему каталогу. Чтобы повысить безопасность, запишите данные в каталоги пользователей вместо корневого каталога или каталога Program Files.
Канал, который нужно открыть, можно найти с помощью FreeFile() функции.
Important
Функция FileOpen требует Read доступа из FileIOPermissionAccess перечисления, что может повлиять на его выполнение в ситуациях с частичным доверием. Дополнительные сведения см. в перечислении FileIOPermissionAccess .