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 _
)

Parámetros

  • 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.

Excepciones

Tipo de excepción

Número de error

Condición

ArgumentException

5

Access, Share o Mode no válido

ArgumentException

5

Hay un archivo WriteOnly abierto para Input.

ArgumentException

5

Hay un archivo ReadOnly abierto para Output.

ArgumentException

5

Hay un archivo ReadOnly abierto para Append.

ArgumentException

5

La longitud del registro es negativa (y no es igual a ‑1).

IOException

52

FileNumber no es válido (<-1 o >255) o FileNumber ya está en uso.

IOException

55

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.

Comentarios

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.

Nota de seguridad:

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().

Nota de seguridad:

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.

Ejemplo

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)

Notas para desarrolladores de dispositivos inteligentes

Esta función no está admitida.

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Módulo:**FileSystem

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

FileClose (Función)

FreeFile (Función)

Otros recursos

Leer archivos en Visual Basic

Escribir en archivos en Visual Basic