File (Clase)
Ensamblado: mscorlib (en mscorlib.dll)
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 |
|---|---|
| Especifica el acceso de lectura y escritura al archivo. | |
| Especifica el nivel de acceso permitido para un archivo que está ya en uso. | |
| 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. |
Nota |
|---|
| 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 | |
| Escribir en un archivo de texto | |
| Leer de un archivo de texto | |
| Anexar texto a un archivo | |
| Cambiar de nombre o mover un archivo | |
| Eliminar un archivo | |
| Copiar un archivo. | |
| Obtener el tamaño de un archivo | |
| Obtener los atributos de un archivo | |
| Establecer los atributos de un archivo | |
| Determinar si un archivo existe | |
| Leer de un archivo binario | |
| Escribir en un archivo binario | |
| Recuperar una extensión de archivo | |
| Recuperar la ruta de acceso completa de un archivo | |
| Recuperar el nombre de archivo y la extensión de una ruta de acceso | |
| Cambiar la extensión de un archivo |
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
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.
Nota