FileOpen (Función)
Actualización: noviembre 2007
Abre un archivo para entrada o salida.
La característica My proporciona mayor productividad y rendimiento en las operaciones de E/S de archivo que si se utiliza FileOpen. Para obtener más información, vea My.Computer.FileSystem (Objeto).
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
Obligatorio. Cualquier número de archivo válido. La función FreeFile se utiliza para obtener el siguiente número de archivo disponible.FileName
Obligatorio. Expresión de tipo String que especifica un nombre de archivo (puede incluir el directorio o la carpeta y la unidad).Mode
Obligatorio. Enumeración que especifica el modo de archivo: Append, Binary, Input, Output o Random. (Para obtener más información, vea OpenMode (Enumeración)).Access
Opcional. Enumeración que especifica las operaciones permitidas en el archivo abierto: Read, Write o ReadWrite. El valor predeterminado es ReadWrite. (Para obtener más información, vea OpenAccess (Enumeración)).Share
Opcional. Enumeración que especifica las operaciones no permitidas en el archivo abierto por otros procesos: Shared, Lock Read, Lock Write y Lock Read Write. El valor predeterminado es Lock Read Write. (Para obtener más información, vea OpenShare (Enumeración)).RecordLength
Opcional. Número menor o igual a 32.767 bytes. En archivos abiertos para acceso aleatorio, este valor será la longitud de registro. En archivos secuenciales, este valor indicará el número de caracteres almacenados en el búfer.
Tipo de excepción |
Número de error |
Condición |
---|---|---|
Access, Share o Mode no válido |
||
Hay un archivo WriteOnly abierto para Input. |
||
Hay un archivo ReadOnly abierto para Output. |
||
Hay un archivo ReadOnly abierto para Append. |
||
La longitud del registro es negativa (y no es igual a ‑1). |
||
FileNumber no es válido (<-1 o >255) o FileNumber ya está en uso. |
||
FileName ya está abierto o FileName no es válido. |
Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, se debe considerar la sustitución de dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.
La función FileOpen se proporciona por razones de compatibilidad con versiones anteriores y puede afectar al rendimiento. En el caso de aplicaciones no heredadas, el objeto My.Computer.FileSystem proporciona un rendimiento superior. Para obtener más información, vea Acceso a archivos con Visual Basic.
Debe abrir un archivo antes de poder realizar cualquier operación de E/S con él. FileOpen asigna un búfer para la E/S del archivo y determina el modo de acceso que se utiliza con el búfer.
![]() |
---|
Al escribir en un archivo, es posible que una aplicación necesite crear un archivo, si el archivo en el que está intentando escribir no existe. Para ello, se necesita permiso para el directorio en el que se creará el archivo. Sin embargo, si el archivo especificado por FileName ya existe, la aplicación necesita permiso Write para ese archivo concreto. Siempre que sea posible y con el fin de mejorar la seguridad, cree el archivo durante la implementación y conceda permiso Write únicamente a dicho archivo, en lugar de hacerlo al directorio completo. Para ayudar a mejorar la seguridad, escriba los datos en los directorios de usuario en lugar de en el directorio raíz o el directorio Archivos de programa. |
El canal que se debe abrir puede encontrarse utilizando la función FreeFile().
![]() |
---|
La función FileOpen requiere acceso Read de la enumeración FileIOPermissionAccess, lo que puede afectar a su ejecución en situaciones de confianza parcial. Para obtener más información, vea la enumeración FileIOPermissionAccess y Solicitar permisos. |
En este ejemplo se muestran varios usos de la función FileOpen para habilitar operaciones de entrada y salida en un archivo.
El siguiente código abre el archivo TestFile en modo Input.
FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)
En este ejemplo, se abre el archivo en modo Binary sólo para operaciones de escritura.
FileOpen(1, "TESTFILE", OpenMode.Binary,OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)
En el siguiente ejemplo, se abre el archivo en modo Random. El archivo contiene registros de la estructura 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
Con este código de ejemplo, el archivo se abre en modo Output: cualquier proceso puede leer o escribir en él.
FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)
Con este código de ejemplo, el archivo se abre en modo Binary para lectura: ningún otro proceso podrá leerlo.
FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read, _
OpenShare.LockRead)
Esta función no está admitida.
Espacio de nombres:Microsoft.VisualBasic
**Módulo:**FileSystem
**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)