File.Move Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
Move(String, String) |
Mueve un archivo especificado a una nueva ubicación, proporcionando la opción para especificar un nuevo nombre de archivo. |
Move(String, String, Boolean) |
Mueve un archivo especificado a una nueva ubicación, proporcionando las opciones para especificar un nuevo nombre de archivo y reemplazar el archivo de destino si ya existe. |
Move(String, String)
- Source:
- File.cs
- Source:
- File.cs
- Source:
- File.cs
Mueve un archivo especificado a una nueva ubicación, proporcionando la opción para especificar un nuevo nombre de archivo.
public:
static void Move(System::String ^ sourceFileName, System::String ^ destFileName);
public static void Move (string sourceFileName, string destFileName);
static member Move : string * string -> unit
Public Shared Sub Move (sourceFileName As String, destFileName As String)
Parámetros
- sourceFileName
- String
Nombre del archivo que se va a mover. Puede incluir una ruta de acceso relativa o absoluta.
- destFileName
- String
La nueva ruta de acceso y el nombre del archivo.
Excepciones
destFileName
ya existe.
-o-
Se ha producido un error de E/S, por ejemplo, al copiar el archivo entre volúmenes de disco.
no se encontró sourceFileName
.
sourceFileName
o destFileName
es null
.
Versiones de .NET Framework y .NET Core anteriores a la 2.1: sourceFileName
o destFileName
es una cadena de longitud cero, solo contiene espacios en blanco o contiene caracteres no válidos. Puede consultar caracteres no válidos mediante el método GetInvalidPathChars().
El autor de la llamada no tiene el permiso necesario.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
La ruta de acceso especificada en sourceFileName
o destFileName
no es válida (por ejemplo, se encuentra en una unidad no asignada).
sourceFileName
o destFileName
tiene un formato no válido.
Ejemplos
En el ejemplo siguiente se mueve un archivo.
using namespace System;
using namespace System::IO;
int main()
{
String^ path = "c:\\temp\\MyTest.txt";
String^ path2 = "c:\\temp2\\MyTest.txt";
try
{
if ( !File::Exists( path ) )
{
// This statement ensures that the file is created,
// but the handle is not kept.
FileStream^ fs = File::Create( path );
if ( fs )
delete (IDisposable^)fs;
}
// Ensure that the target does not exist.
if ( File::Exists( path2 ) )
File::Delete( path2 );
// Move the file.
File::Move( path, path2 );
Console::WriteLine( "{0} was moved to {1}.", path, path2 );
// See if the original exists now.
if ( File::Exists( path ) )
{
Console::WriteLine( "The original file still exists, which is unexpected." );
}
else
{
Console::WriteLine( "The original file no longer exists, which is expected." );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string path2 = @"c:\temp2\MyTest.txt";
try
{
if (!File.Exists(path))
{
// This statement ensures that the file is created,
// but the handle is not kept.
using (FileStream fs = File.Create(path)) {}
}
// Ensure that the target does not exist.
if (File.Exists(path2))
File.Delete(path2);
// Move the file.
File.Move(path, path2);
Console.WriteLine("{0} was moved to {1}.", path, path2);
// See if the original exists now.
if (File.Exists(path))
{
Console.WriteLine("The original file still exists, which is unexpected.");
}
else
{
Console.WriteLine("The original file no longer exists, which is expected.");
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
let path = @"c:\temp\MyTest.txt"
let path2 = @"c:\temp2\MyTest.txt"
if File.Exists path |> not then
// This statement ensures that the file is created,
// but the handle is not kept.
use _ = File.Create path
()
// Ensure that the target does not exist.
if File.Exists path2 then
File.Delete path2
// Move the file.
File.Move(path, path2)
printfn $"{path} was moved to {path2}."
// See if the original exists now.
if File.Exists path then
printfn "The original file still exists, which is unexpected."
else
printfn "The original file no longer exists, which is expected."
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
Dim path2 As String = "c:\temp2\MyTest.txt"
Try
If File.Exists(path) = False Then
' This statement ensures that the file is created,
' but the handle is not kept.
Dim fs As FileStream = File.Create(path)
fs.Close()
End If
' Ensure that the target does not exist.
If File.Exists(path2) Then
File.Delete(path2)
End If
' Move the file.
File.Move(path, path2)
Console.WriteLine("{0} moved to {1}", path, path2)
' See if the original file exists now.
If File.Exists(path) Then
Console.WriteLine("The original file still exists, which is unexpected.")
Else
Console.WriteLine("The original file no longer exists, which is expected.")
End If
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Comentarios
Este método funciona entre volúmenes de disco y no produce una excepción si el origen y el destino son los mismos.
Tenga en cuenta que si intenta reemplazar un archivo moviendo un archivo con el mismo nombre en ese directorio, se produce un IOException. Para evitar este problema:
En .NET Core 3.0 y versiones posteriores, puede llamar a Move(String, String, Boolean) establecer el parámetro
overwrite
entrue
, que reemplazará el archivo si existe.En todas las versiones de .NET, puede llamar a Copy(String, String, Boolean) para copiar con sobrescritura y, a continuación, llamar a
Delete
para quitar el archivo de origen excesivo. Esta estrategia es aconsejable si el archivo que se va a copiar es pequeño y está buscando una operación de archivo "atomic". SiDelete
primero el archivo y el sistema o programa se bloquea, el archivo de destino ya no existirá.En todas las versiones de .NET, puede llamar a Delete(String) antes de llamar a
Move
, que solo eliminará el archivo si existe.
Los argumentos sourceFileName
y destFileName
pueden incluir información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
Mover el archivo entre volúmenes de disco equivale a copiar el archivo y eliminarlo del origen si la copia se realizó correctamente.
Si intenta mover un archivo entre volúmenes de disco y ese archivo está en uso, el archivo se copia en el destino, pero no se elimina del origen.
Para obtener una lista de las tareas comunes de E/S, consulte Tareas de E/S comunes.
Consulte también
- de E/S de flujo y archivos
- leer texto de un archivo
- Cómo: Escribir texto en un archivo
Se aplica a
Move(String, String, Boolean)
- Source:
- File.cs
- Source:
- File.cs
- Source:
- File.cs
Mueve un archivo especificado a una nueva ubicación, proporcionando las opciones para especificar un nuevo nombre de archivo y reemplazar el archivo de destino si ya existe.
public:
static void Move(System::String ^ sourceFileName, System::String ^ destFileName, bool overwrite);
public static void Move (string sourceFileName, string destFileName, bool overwrite);
static member Move : string * string * bool -> unit
Public Shared Sub Move (sourceFileName As String, destFileName As String, overwrite As Boolean)
Parámetros
- sourceFileName
- String
Nombre del archivo que se va a mover. Puede incluir una ruta de acceso relativa o absoluta.
- destFileName
- String
La nueva ruta de acceso y el nombre del archivo.
- overwrite
- Boolean
true
reemplazar el archivo de destino si ya existe; false
de lo contrario.
Excepciones
destFileName
ya existe y overwrite
es false
.
-o-
Se ha producido un error de E/S, por ejemplo, al copiar el archivo entre volúmenes de disco.
no se encontró sourceFileName
.
sourceFileName
o destFileName
es null
.
Versiones de .NET Framework y .NET Core anteriores a la 2.1: sourceFileName
o destFileName
es una cadena de longitud cero, solo contiene espacios en blanco o contiene caracteres no válidos. Puede consultar caracteres no válidos mediante el método GetInvalidPathChars().
El autor de la llamada no tiene el permiso necesario.
-o-
El sistema operativo no ha podido adquirir un acceso exclusivo al archivo de destino.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
La ruta de acceso especificada en sourceFileName
o destFileName
no es válida (por ejemplo, se encuentra en una unidad no asignada).
sourceFileName
o destFileName
tiene un formato no válido.
Ejemplos
En el ejemplo siguiente se mueve un archivo.
using namespace System;
using namespace System::IO;
int main()
{
String^ path = "c:\\temp\\MyTest.txt";
String^ path2 = "c:\\temp2\\MyTest.txt";
try
{
if ( !File::Exists( path ) )
{
// This statement ensures that the file is created,
// but the handle is not kept.
FileStream^ fs = File::Create( path );
if ( fs )
delete (IDisposable^)fs;
}
// Ensure that the target does not exist.
if ( File::Exists( path2 ) )
File::Delete( path2 );
// Move the file.
File::Move( path, path2 );
Console::WriteLine( "{0} was moved to {1}.", path, path2 );
// See if the original exists now.
if ( File::Exists( path ) )
{
Console::WriteLine( "The original file still exists, which is unexpected." );
}
else
{
Console::WriteLine( "The original file no longer exists, which is expected." );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string path2 = @"c:\temp2\MyTest.txt";
try
{
if (!File.Exists(path))
{
// This statement ensures that the file is created,
// but the handle is not kept.
using (FileStream fs = File.Create(path)) {}
}
// Ensure that the target does not exist.
if (File.Exists(path2))
File.Delete(path2);
// Move the file.
File.Move(path, path2);
Console.WriteLine("{0} was moved to {1}.", path, path2);
// See if the original exists now.
if (File.Exists(path))
{
Console.WriteLine("The original file still exists, which is unexpected.");
}
else
{
Console.WriteLine("The original file no longer exists, which is expected.");
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
let path = @"c:\temp\MyTest.txt"
let path2 = @"c:\temp2\MyTest.txt"
if File.Exists path |> not then
// This statement ensures that the file is created,
// but the handle is not kept.
use _ = File.Create path
()
// Ensure that the target does not exist.
if File.Exists path2 then
File.Delete path2
// Move the file.
File.Move(path, path2)
printfn $"{path} was moved to {path2}."
// See if the original exists now.
if File.Exists path then
printfn "The original file still exists, which is unexpected."
else
printfn "The original file no longer exists, which is expected."
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
Dim path2 As String = "c:\temp2\MyTest.txt"
Try
If File.Exists(path) = False Then
' This statement ensures that the file is created,
' but the handle is not kept.
Dim fs As FileStream = File.Create(path)
fs.Close()
End If
' Ensure that the target does not exist.
If File.Exists(path2) Then
File.Delete(path2)
End If
' Move the file.
File.Move(path, path2)
Console.WriteLine("{0} moved to {1}", path, path2)
' See if the original file exists now.
If File.Exists(path) Then
Console.WriteLine("The original file still exists, which is unexpected.")
Else
Console.WriteLine("The original file no longer exists, which is expected.")
End If
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Comentarios
Este método funciona entre volúmenes de disco y no produce una excepción si el origen y el destino son los mismos.
Los argumentos sourceFileName
y destFileName
pueden incluir información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
Mover el archivo entre volúmenes de disco equivale a copiar el archivo y eliminarlo del origen si la copia se realizó correctamente.
Si intenta mover un archivo entre volúmenes de disco y ese archivo está en uso, el archivo se copia en el destino, pero no se elimina del origen.
Para obtener una lista de las tareas comunes de E/S, consulte Tareas de E/S comunes.
Consulte también
- de E/S de flujo y archivos
- leer texto de un archivo
- Cómo: Escribir texto en un archivo