Partager via


File.Move Méthode

Définition

Surcharges

Move(String, String)

Déplace un fichier spécifié vers un nouvel emplacement, en fournissant l’option permettant de spécifier un nouveau nom de fichier.

Move(String, String, Boolean)

Déplace un fichier spécifié vers un nouvel emplacement, 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é vers un nouvel emplacement, en fournissant l’option permettant de spécifier un nouveau nom de fichier.

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 relatif ou absolu.

destFileName
String

Nouveau chemin d’accès et nom du fichier.

Exceptions

destFileName existe déjà.

-ou-

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

sourceFileName n’a pas été trouvé.

sourceFileName ou destFileName est null.

Versions .NET Framework et .NET Core 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 des caractères non valides à l’aide de la méthode GetInvalidPathChars().

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

Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

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

sourceFileName ou destFileName est dans 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, une 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) définir 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 remplacement, puis appeler Delete pour supprimer le fichier source excédentaire. Cette stratégie est conseillée si le fichier copié est petit et que vous recherchez une opération de fichier « atomique ». Si vous Delete d’abord 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 arguments sourceFileName 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 les 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 entre des 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 d’E/S courantes.

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, 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 relatif ou absolu.

destFileName
String

Nouveau chemin d’accès et nom du fichier.

overwrite
Boolean

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

Exceptions

destFileName existe déjà et overwrite est false.

-ou-

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

sourceFileName n’a pas été trouvé.

sourceFileName ou destFileName est null.

Versions .NET Framework et .NET Core 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 des 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 d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

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

sourceFileName ou destFileName est dans 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 arguments sourceFileName 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 les 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 entre des 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 d’E/S courantes.

Voir aussi

S’applique à