FileInfo (Clase)
Ensamblado: mscorlib (en mscorlib.dll)
Utilice la clase FileInfo para operaciones como copiar, mover, cambiar el nombre, crear, abrir, eliminar y anexar texto a archivos.
Muchos de los métodos de FileInfo 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 FileInfo como Open, OpenRead, OpenText, CreateText o Create.
Si va a utilizar un objeto varias veces, considere la posibilidad de usar el método de instancia de FileInfo en lugar de los correspondientes métodos estáticos de la clase File, ya que no siempre será 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 FileInfo.
| 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.
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 existe un archivo. | |
| 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 |
Nota de la plataforma Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows CE: Dado que los sistemas de archivos de los dispositivos funcionan de manera diferente, .NET Compact Framework no permite obtener o establecer atributos de archivo.
En el siguiente ejemplo se muestran algunos de los miembros principales de la clase FileInfo.
using System; using System.IO; class Test { public static void Main() { string path = Path.GetTempFileName(); FileInfo fi1 = new FileInfo(path); if (!fi1.Exists) { //Create a file to write to. using (StreamWriter sw = fi1.CreateText()) { sw.WriteLine("Hello"); sw.WriteLine("And"); sw.WriteLine("Welcome"); } } //Open the file to read from. using (StreamReader sr = fi1.OpenText()) { string s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } try { string path2 = Path.GetTempFileName(); FileInfo fi2 = new FileInfo(path2); //Ensure that the target does not exist. fi2.Delete(); //Copy the file. fi1.CopyTo(path2); Console.WriteLine("{0} was copied to {1}.", path, path2); //Delete the newly created file. fi2.Delete(); 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";
FileInfo fi1 = new FileInfo(path);
if (!(fi1.get_Exists())) {
//Create a file to write to.
StreamWriter sw = fi1.CreateText();
try {
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
finally {
sw.Dispose();
}
}
//Open the file to read from.
StreamReader sr = fi1.OpenText();
try {
String s = "";
while ((s = sr.ReadLine())!= null) {
Console.WriteLine(s);
}
}
finally {
sr.Dispose();
}
try {
String path2 = path + "temp";
FileInfo fi2 = new FileInfo(path2);
//Ensure that the target does not exist.
fi2.Delete();
//Copy the file.
fi1.CopyTo(path2);
Console.WriteLine("{0} was copied to {1}.", path, path2);
//Delete the newly created file.
fi2.Delete();
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