Este tema aún no ha recibido ninguna valoración - Valorar este tema

FileInfo.MoveTo (Método)

Mueve un archivo especificado a una nueva ubicación, proporcionando la opción para indicar un nuevo nombre de archivo.

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

public void MoveTo (
	string destFileName
)
public void MoveTo (
	String destFileName
)
public function MoveTo (
	destFileName : String
)

Parámetros

destFileName

La ruta de acceso a la que se mueve el archivo, que puede especificar un nombre de archivo distinto.

Tipo de excepción Condición

IOException

Se produce un error de E/S, como por ejemplo, que el archivo de destino ya existe o que el dispositivo de destino no está listo.

ArgumentNullException

destFileName es referencia de objeto null (Nothing en Visual Basic).

ArgumentException

destFileName está vacío, contiene solamente espacios en blanco o contiene caracteres no válidos.

SecurityException

El llamador no dispone del permiso requerido.

UnauthorizedAccessException

destFileName es de sólo lectura o es un directorio.

FileNotFoundException

No se encuentra el archivo.

DirectoryNotFoundException

La ruta de acceso especificada no es válida como, por ejemplo, una ruta de una unidad no asignada.

PathTooLongException

La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema. Por ejemplo, en las plataformas basadas en Windows, las rutas de acceso deben ser inferiores a 248 caracteres y los nombres de archivo deben ser inferiores a 260 caracteres.

NotSupportedException

destFileName contiene dos puntos (:) dentro de la cadena.

Este método funciona en volúmenes de disco. Por ejemplo, el archivo c:\MiArchivo.txt se puede mover a d:\público y cambiarlo de nombre a NuevoArchivo.txt.

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

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 directorio

Directory.Move

DirectoryInfo.MoveTo

Nota de la plataforma Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows CE: Algunos sistemas de archivos de dispositivo no admiten rutas de acceso relativas. Especifique información de ruta de acceso absoluta.

En el siguiente ejemplo se muestra cómo mover un archivo a otra ubicación y cómo cambiarlo de nombre.


using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.IO;
using System.Reflection;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;




namespace Microsoft.Samples.MoveTo.CS 
{

	class Program 
	{
		private static string sourcePath = Environment.GetFolderPath
			(Environment.SpecialFolder.MyDocuments) + 
			@"\FileInfoTestDirectory\MoveFrom\FromFile.xml";
		
		private static string destPath = Environment.GetFolderPath
			(Environment.SpecialFolder.MyDocuments) + 
			@"\FileInfoTestDirectory\DestFile.xml";
		//
		// The main entry point for the application.
		//
		[STAThread()] static void Main () 
		{
			// Change Console properties to make it obvious that 
			// the application is starting.
			Console.Clear();
			// Move it to the upper left corner of the screen.
			Console.SetWindowPosition(0, 0);
			// Make it very large.
			Console.SetWindowSize(Console.LargestWindowWidth - 24,
				Console.LargestWindowHeight - 16);
			Console.WriteLine("Welcome.");
			Console.WriteLine("This application demonstrates the FileInfo.MoveTo method.");
			Console.WriteLine("Press any key to start.");
			string s = Console.ReadLine();
			Console.Write("    Checking whether ");
			Console.Write(sourcePath);
			Console.WriteLine(" exists.");
			FileInfo fInfo = new FileInfo (sourcePath);
			EnsureSourceFileExists();
			DisplayFileProperties(fInfo);
			Console.WriteLine("Preparing to move the file to ");
			Console.Write(destPath);
			Console.WriteLine(".");
			MoveFile(fInfo);
			DisplayFileProperties(fInfo);
			Console.WriteLine("Preparing to delete directories.");
			DeleteFiles();
			Console.WriteLine("Press the ENTER key to close this application.");
			s = Console.ReadLine();
		}
		//
		// Moves the supplied FileInfo instance to destPath.
		//
		private static void MoveFile(FileInfo fInfo) 
		{
			try 
			{
				fInfo.MoveTo(destPath);
				Console.WriteLine("File moved to ");
				Console.WriteLine(destPath);
			} catch (Exception ex) {
				DisplayException(ex);
			}
		}
		//
		// Ensures that the test directories 
		// and the file FromFile.xml all exist.
		// 
		private static void EnsureSourceFileExists() 
		{
			FileInfo fInfo = new FileInfo(sourcePath);
			string dirPath = fInfo.Directory.FullName;
			if (!Directory.Exists(dirPath)) 
			{
				Directory.CreateDirectory(dirPath);
			}
			if (File.Exists(destPath)) 
			{
				File.Delete(destPath);
			}
			Console.Write("Creating file ");
			Console.Write(fInfo.FullName);
			Console.WriteLine(".");
			try 
			{
				if (!fInfo.Exists) 
				{
					Console.WriteLine("Adding data to the file.");
					WriteFileContent(10);
					Console.WriteLine("Successfully created the file.");
				}
			} 
			catch (Exception ex) 
			{
				DisplayException(ex);
			} 
			finally 
			{
				dirPath = null;
			}
		}
		//
		// Creates and saves an Xml file to sourcePath.
		//
		private static void WriteFileContent(int totalElements) 
		{
			XmlDocument doc = new XmlDocument();
			doc.PreserveWhitespace = true;
			doc.AppendChild(doc.CreateXmlDeclaration("1.0", null, "yes"));
			doc.AppendChild(doc.CreateWhitespace("\r\n"));
			XmlElement root = doc.CreateElement("FileInfo.MoveTo");
			root.AppendChild(doc.CreateWhitespace("\r\n"));
			int index = 0;
			XmlElement elem;
			while (index < totalElements) 
			{
				
				elem = doc.CreateElement("MyElement");
				elem.SetAttribute("Index", index.ToString());
				elem.AppendChild(doc.CreateWhitespace("\r\n"));
				elem.AppendChild(doc.CreateTextNode(String.Format
					("MyElement at position {0}.", index)));
				elem.AppendChild(doc.CreateWhitespace("\r\n"));
				root.AppendChild(elem);
				root.AppendChild(doc.CreateWhitespace("\r\n"));
				index++;
			}
			doc.AppendChild(root);
			doc.AppendChild(doc.CreateWhitespace("\r\n"));
			doc.Save(sourcePath);
			elem = null;
			root = null;
			doc = null;
		}
		//
		// Displays FullName, CreationTime, and LastWriteTime of the supplied
		// FileInfo instance, then displays the text of the file.
		//
		private static void DisplayFileProperties(FileInfo fInfo) 
		{
			Console.WriteLine("The FileInfo instance shows these property values.");
			StreamReader reader = null;
			try 
			{
				Console.Write("FullName: ");
				Console.WriteLine(fInfo.FullName);
				Console.Write("CreationTime: ");
				Console.WriteLine(fInfo.CreationTime);
				Console.Write("LastWriteTime: ");
				Console.WriteLine(fInfo.LastWriteTime);
				Console.WriteLine();
				Console.WriteLine("File contents:");
				Console.WriteLine();
				reader = new StreamReader(fInfo.FullName);
				while (!reader.EndOfStream) 
				{
					Console.WriteLine(reader.ReadLine());
				}
				Console.WriteLine();
			} 
			catch (Exception ex) 
			{
				DisplayException(ex);
			} 
			finally 
			{
				if (reader != null) 
				{
					reader.Close();
				}
				reader = null;
			}
		}
		//
		// Deletes the test directory and all its files and subdirectories.
		//
		private static void DeleteFiles() 
		{
			try 
			{
				DirectoryInfo dInfo = new DirectoryInfo(Environment.GetFolderPath
					(Environment.SpecialFolder.MyDocuments) + "\\FileInfoTestDirectory");
				if (dInfo.Exists) 
				{
					dInfo.Delete(true);
					Console.WriteLine("Successfully deleted directories and files.");
				}
				dInfo = null;
			} 
			catch (Exception ex) 
			{
				DisplayException(ex);
			}
		}
		//
		// Displays information about the supplied Exception. This
		// code is not suitable for production applications.
		//
		private static void DisplayException(Exception ex) 
		{
			StringBuilder sb = new StringBuilder();
			sb.Append("An exception of type \"");
			sb.Append(ex.GetType().FullName);
			sb.Append("\" has occurred.\r\n");
			sb.Append(ex.Message);
			sb.Append("\r\nStack trace information:\r\n");
			MatchCollection matchCol = Regex.Matches(ex.StackTrace,
@"(at\s)(.+)(\.)([^\.]*)(\()([^\)]*)(\))((\sin\s)(.+)(:line )([\d]*))?");
			int L = matchCol.Count;
			string[] argList;
			Match matchObj;
			int y, K;
			for(int x = 0; x < L; x++) 
			{
				matchObj = matchCol[x];
				sb.Append(matchObj.Result("\r\n\r\n$1 $2$3$4$5"));
				argList = matchObj.Groups[6].Value.Split(new char[] { ',' });
				K = argList.Length;
				for (y = 0; y < K; y++) 
				{
					sb.Append("\r\n    ");
					sb.Append(argList[y].Trim().Replace(" ", "        "));
					sb.Append(',');
				}
				sb.Remove(sb.Length - 1, 1);
				sb.Append("\r\n)");
				if (0 < matchObj.Groups[8].Length) 
				{
					sb.Append(matchObj.Result("\r\n$10\r\nline $12"));
				}
			}
			argList = null;
			matchObj = null;
			matchCol = null;
			Console.WriteLine(sb.ToString());
			sb = null;
		}
	}
}

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
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar