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é 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
surtrue
, 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 vousDelete
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
- fichier et flux d’E/S
- lecture de texte à partir d’un fichier
- Comment : é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, 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
- fichier et flux d’E/S
- lecture de texte à partir d’un fichier
- Comment : écrire du texte dans un fichier