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:
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