Método File.Open(String, FileMode, FileAccess, FileShare) en C# con ejemplos

File.Open(String, FileMode, FileAccess, FileShare) es un método de clase de archivo incorporado que se utiliza para abrir un FileStream en la ruta especificada, con el modo especificado con acceso de lectura, escritura o lectura/escritura y la opción de compartir especificada.
Sintaxis:
 

System.IO.FileStream Open estático público (ruta de string, modo System.IO.FileMode, acceso System.IO.FileAccess, recurso compartido System.IO.FileShare); 
 

Parámetro: Esta función acepta tres parámetros que se ilustran a continuación: 
 

  • ruta: Este es el archivo especificado para abrir.
  • modo: este valor de modo especifica si se crea un nuevo archivo si no existe uno, y también determina si el contenido del archivo existente se conserva o se sobrescribe.
  • acceso: este valor especifica las operaciones que se pueden realizar en el archivo.
  • compartir: este valor especifica el tipo de acceso que otros subprocesos tienen al archivo.

Excepciones:
 

  • ArgumentException: la ruta es una string de longitud cero, contiene solo espacios en blanco o uno o más caracteres no válidos según lo definido por InvalidPathChars. O acceder a la lectura especificada y al modo especificado Crear, Crear nuevo, Truncar o Anexar.
  • ArgumentNullException: la ruta es nula.
  • PathTooLongException: la ruta especificada , el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
  • DirectoryNotFoundException: la ruta especificada no es válida.
  • IOException: se produjo un error de E/S al abrir el archivo.
  • UnauthorizedAccessException: la ruta especificó un archivo que es de solo lectura y el acceso no es de lectura. O la ruta especificó un directorio. O la persona que llama no tiene el permiso requerido. El modo O es Crear y el archivo especificado es un archivo oculto.
  • ArgumentOutOfRangeException: el modo , acceso o recurso compartido especificó un valor no válido.
  • FileNotFoundException: no se encontró el archivo especificado en la ruta .
  • NotSupportedException: la ruta tiene un formato no válido.

Valor de retorno: devuelve un FileStream en la ruta especificada, que tiene el modo especificado con acceso de lectura, escritura o lectura/escritura y la opción de uso compartido especificada.
A continuación se muestran los programas para ilustrar el método File.Open(String, FileMode, FileAccess, FileShare).
Programa 1: el siguiente código crea un archivo temporal, escribe algunos contenidos específicos en él, abre ese archivo e imprime su contenido. Aquí no se permite compartir archivos.
 

CSharp

// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
 
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
 
class GFG {
    public static void Main()
    {
        // Creating a temporary file
        string path = Path.GetTempFileName();
        using(FileStream fs = File.Open(path, FileMode.Open))
        {
            // Putting some contents
            Byte[] info = new UTF8Encoding(true).GetBytes("GFG is a CS Portal.");
            fs.Write(info, 0, info.Length);
        }
 
        // Opening the stream and reading it back.
        using(FileStream fs = File.Open(path, FileMode.Open,
                           FileAccess.Read, FileShare.None))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
 
            while (fs.Read(b, 0, b.Length) > 0) {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }
}

Ejecutando: 
 

GFG is a CS Portal.

Programa 2: Inicialmente, se crea un archivo file.txt con algunos contenidos que se muestran a continuación:
 

file.txt

Este código abrirá el archivo file.txt e imprimirá su contenido sin que se permita compartir archivos.
 

CSharp

// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
 
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
 
class GFG {
    public static void Main()
    {
        // Specifying a file path
        string path = @"file.txt";
 
        // Opening above file and reading it back.
        using(FileStream fs = File.Open(path, FileMode.Open,
                           FileAccess.Read, FileShare.None))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
 
            while (fs.Read(b, 0, b.Length) > 0) {
                // Printing the file contents
                Console.WriteLine(temp.GetString(b));
            }
        }
    }
}

Ejecutando: 
 

GeeksforGeeks

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *