File.Move Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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, une IOException exception est levée. Pour éviter ce problème :
Dans .NET Core 3.0 et versions ultérieures, vous pouvez appeler Move(String, String, Boolean) la définition du paramètre
overwrite
surtrue
, 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 recommandée si le fichier copié est petit et que vous recherchez une opération de fichier « atomique ». Si vousDelete
avez d’abord le fichier et que le système ou le programme plante, 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.
Déplacer le fichier sur plusieurs volumes de disque revient à 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é vers 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
- Fichier et flux de données E/S
- Lecture de texte à partir d’un fichier
- Procédure : écrire du texte dans un fichier
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.
Déplacer le fichier sur plusieurs volumes de disque revient à 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é vers 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
- Fichier et flux de données E/S
- Lecture de texte à partir d’un fichier
- Procédure : écrire du texte dans un fichier