File.Move Méthode

Définition

Surcharges

Move(String, String)

Déplace un fichier spécifié à un nouvel emplacement, en permettant de spécifier un nouveau nom.

Move(String, String, Boolean)

Déplace un fichier spécifié vers un nouvel emplacement, en fournissant les options permettant de spécifier un nouveau nom de fichier et de remplacer le fichier de destination s’il existe déjà.

Move(String, String)

Source:
File.cs
Source:
File.cs
Source:
File.cs

Déplace un fichier spécifié à un nouvel emplacement, en permettant de spécifier un nouveau nom.

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)

Paramètres

sourceFileName
String

Nom du fichier à déplacer. Peut inclure un chemin d’accès absolu ou relatif.

destFileName
String

Nouveaux nom et chemin d’accès au fichier.

Exceptions

destFileName existe déjà.

- ou -

Une erreur d’E/S s’est produite, par exemple lors de la copie du fichier sur des volumes de disque.

sourceFileName est introuvable.

sourceFileName ou destFileName est null.

.NET Framework et .NET Core versions antérieures à 2.1 : sourceFileName ou destFileName est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient des caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().

L'appelant n'a pas l'autorisation requise.

Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.

Le chemin spécifié dans sourceFileName ou destFileName n’est pas valide (par exemple, il est sur un lecteur non mappé).

sourceFileName ou destFileName a un format non valide.

Exemples

L’exemple suivant déplace un fichier.

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

Remarques

Cette méthode fonctionne sur les volumes de disque et ne lève pas d’exception si la source et la destination sont identiques.

Notez que si vous tentez de remplacer un fichier en déplaçant un fichier du même nom dans ce répertoire, un IOException est levée. Pour éviter ce problème :

  • Dans .NET Core 3.0 et versions ultérieures, vous pouvez appeler Move(String, String, Boolean) en définissant le paramètre overwrite sur true, ce qui remplacera le fichier s’il existe.

  • Dans toutes les versions de .NET, vous pouvez appeler Copy(String, String, Boolean) pour copier avec le remplacement, puis appeler Delete pour supprimer le fichier source excédentaire. Cette stratégie est recommandée si le fichier copié est petit et que vous recherchez une opération de fichier « atomique ». Si vous commencez Delete par le fichier et que le système ou le programme se bloque, le fichier de destination n’existe plus.

  • Dans toutes les versions de .NET, vous pouvez appeler Delete(String) avant d’appeler Move, ce qui supprime uniquement le fichier s’il existe.

Les sourceFileName arguments et destFileName peuvent inclure des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.

Le déplacement du fichier sur plusieurs volumes de disque équivaut à copier le fichier et à le supprimer de la source si la copie a réussi.

Si vous essayez de déplacer un fichier sur plusieurs volumes de disque et que ce fichier est en cours d’utilisation, le fichier est copié dans la destination, mais il n’est pas supprimé de la source.

Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.

Voir aussi

S’applique à

Move(String, String, Boolean)

Source:
File.cs
Source:
File.cs
Source:
File.cs

Déplace un fichier spécifié vers un nouvel emplacement, en fournissant les options permettant de spécifier un nouveau nom de fichier et de remplacer le fichier de destination s’il existe déjà.

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)

Paramètres

sourceFileName
String

Nom du fichier à déplacer. Peut inclure un chemin d’accès absolu ou relatif.

destFileName
String

Nouveaux nom et chemin d’accès au fichier.

overwrite
Boolean

true pour remplacer le fichier de destination s’il existe déjà ; false Sinon.

Exceptions

destFileName existe déjà et overwrite a la valeur false.

- ou -

Une erreur d’E/S s’est produite, par exemple lors de la copie du fichier sur des volumes de disque.

sourceFileName est introuvable.

sourceFileName ou destFileName est null.

.NET Framework et .NET Core versions antérieures à 2.1 : sourceFileName ou destFileName est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient des caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().

L'appelant n'a pas l'autorisation requise.

- ou -

Le système d’exploitation n’a pas pu acquérir un accès exclusif au fichier de destination.

Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.

Le chemin spécifié dans sourceFileName ou destFileName n’est pas valide (par exemple, il est sur un lecteur non mappé).

sourceFileName ou destFileName a un format non valide.

Exemples

L’exemple suivant déplace un fichier.

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

Remarques

Cette méthode fonctionne sur les volumes de disque et ne lève pas d’exception si la source et la destination sont identiques.

Les sourceFileName arguments et destFileName peuvent inclure des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.

Le déplacement du fichier sur plusieurs volumes de disque équivaut à copier le fichier et à le supprimer de la source si la copie a réussi.

Si vous essayez de déplacer un fichier sur plusieurs volumes de disque et que ce fichier est en cours d’utilisation, le fichier est copié dans la destination, mais il n’est pas supprimé de la source.

Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.

Voir aussi

S’applique à