Esta documentación está archivada y no tiene mantenimiento.

File (Clase)

Proporciona métodos estáticos para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de objetos FileStream.

Espacio de nombres: System.IO
Ensamblado: mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)] 
public static class File
/** @attribute ComVisibleAttribute(true) */ 
public final class File
ComVisibleAttribute(true) 
public final class File

Utilice la clase File para operaciones como copiar, mover, cambiar el nombre, crear, abrir, eliminar y anexar texto a archivos. También puede utilizar la clase File para obtener y definir atributos de archivo o información de DateTime relacionada con la creación, el acceso y la escritura de un archivo.

Muchos de los métodos File devuelven otros tipos de E/S al crear o abrir archivos. Estos otros tipos se pueden utilizar para seguir manipulando un archivo. Para obtener más información, vea los miembros específicos de File como OpenText, CreateText o Create.

Dado que todos los métodos File son estáticos, puede resultar más eficaz utilizar un método File en lugar del correspondiente método de instancia de FileInfo si se desea realizar sólo una operación. Todos los métodos File requieren la ruta de acceso al archivo que está manipulando.

Los métodos estáticos de la clase File realizan comprobaciones de seguridad en todos los métodos. Si va a utilizar un objeto varias veces, considere la posibilidad de usar el correspondiente método de instancia de FileInfo, ya que no siempre es necesario realizar una comprobación de seguridad.

De forma predeterminada, se otorga acceso completo de lectura y escritura a los nuevos archivos a todos los usuarios.

En la tabla siguiente se describen las enumeraciones que se utilizan para personalizar el comportamiento de varios métodos de File.

Enumeración

Descripción

FileAccess

Especifica el acceso de lectura y escritura al archivo.

FileShare

Especifica el nivel de acceso permitido para un archivo que está ya en uso.

FileMode

Especifica si el contenido de un archivo existente se conserva o se sobrescribe, y si las solicitudes para crear un archivo existente provocarán una excepción.

NotaNota

En los miembros que aceptan una ruta como cadena de entrada, la ruta debe ser correcta o, de lo contrario, se produce una excepción. Por ejemplo, si se trata de una ruta completa pero que empieza por un espacio, la ruta no se recorta en los métodos de la clase. En consecuencia, la ruta está mal construida y se produce una excepción. De forma similar, una combinación de rutas de acceso no puede completarse dos veces. Por ejemplo, "c:\temp c:\windows" produce también una excepción en la mayoría de los casos. Asegúrese de que las rutas de acceso estén bien construidas cuando utilice métodos que acepten una cadena de ruta de acceso.

En los miembros que aceptan una ruta de acceso, esta ruta puede hacer referencia a un archivo o sólo a un directorio. La ruta especificada puede hacer referencia también a una ruta relativa o a una ruta de convención de nomenclatura universal (Universal Naming Convention, UNC) de un servidor y un nombre de recurso compartido. Por ejemplo, las siguientes rutas de acceso son todas válidas:

  • "c:\\MiDir\\MiArchivo.txt" en C# o "c:\MiDir\MiArchivo.txt" en Visual Basic.

  • "c:\\MiDir" en C# o "c:\MiDir" en Visual Basic.

  • "MiDir\\MiSubdir" en C# o "MiDir\MiSubDir" en Visual Basic.

  • "\\\\MiServidor\\MiRecursoComp" en C# o "\\MiServidor\MiRecursoComp" en Visual Basic.

Para obtener un ejemplo de cómo utilizar esta clase, vea la sección Ejemplo. En la siguiente tabla se muestran ejemplos de otras tareas de E/S típicas o relacionadas.

Para realizar esta operación...

Vea el ejemplo de este tema...

Crear un archivo de texto

Cómo: Escribir texto en un archivo

Escribir en un archivo de texto

Cómo: Escribir texto en un archivo

Leer de un archivo de texto

Cómo: Leer texto de un archivo

Anexar texto a un archivo

Cómo: Abrir y anexar a un archivo de registro

File.AppendText

FileInfo.AppendText

Cambiar de nombre o mover un archivo

File.Move

FileInfo.MoveTo

Eliminar un archivo

File.Delete

FileInfo.Delete

Copiar un archivo.

File.Copy

FileInfo.CopyTo

Obtener el tamaño de un archivo

FileInfo.Length

Obtener los atributos de un archivo

File.GetAttributes

Establecer los atributos de un archivo

File.SetAttributes

Determinar si un archivo existe

File.Exists

Leer de un archivo binario

Cómo: Leer y escribir en un archivo de datos recién creado

Escribir en un archivo binario

Cómo: Leer y escribir en un archivo de datos recién creado

Recuperar una extensión de archivo

Path.GetExtension

Recuperar la ruta de acceso completa de un archivo

Path.GetFullPath

Recuperar el nombre de archivo y la extensión de una ruta de acceso

Path.GetFileName

Cambiar la extensión de un archivo

Path.ChangeExtension

En el siguiente ejemplo se muestran algunos de los miembros principales de la clase File.

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        if (!File.Exists(path)) 
        {
            // Create a file to write to.
            using (StreamWriter sw = File.CreateText(path)) 
            {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }	
        }

        // Open the file to read from.
        using (StreamReader sr = File.OpenText(path)) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                Console.WriteLine(s);
            }
        }

        try 
        {
            string path2 = path + "temp";
            // Ensure that the target does not exist.
            File.Delete(path2);

            // Copy the file.
            File.Copy(path, path2);
            Console.WriteLine("{0} was copied to {1}.", path, path2);

            // Delete the newly created file.
            File.Delete(path2);
            Console.WriteLine("{0} was successfully deleted.", path2);
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}

import System.*;
import System.IO.*;

class Test
{
    public static void main(String[] args)
    {
        String path = "c:\\temp\\MyTest.txt";

        if (!(File.Exists(path))) {
            // Create a file to write to.
            StreamWriter sw = File.CreateText(path);

            try {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }
            finally {
                sw.Dispose();
            }
        }

        // Open the file to read from.
        StreamReader sr = File.OpenText(path);

        try {
            String s = "";

            while ((s = sr.ReadLine()) != null) {
                Console.WriteLine(s);
            }
        }
        finally {
            sr.Dispose();
        }
        try {
            String path2 = path + "temp";

            // Ensure that the target does not exist.
            File.Delete(path2);

            // Copy the file.
            File.Copy(path, path2);
            Console.WriteLine("{0} was copied to {1}.", path, path2);

            // Delete the newly created file.
            File.Delete(path2);
            Console.WriteLine("{0} was successfully deleted.", path2);
        }
        catch (System.Exception e) {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    } //main
} //Test

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: