File.Move Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| Move(String, String) |
Verschiebt eine angegebene Datei an einen neuen Speicherort, wobei die Option zum Angeben eines neuen Dateinamens bereitgestellt wird. |
| Move(String, String, Boolean) |
Verschiebt eine angegebene Datei an einen neuen Speicherort, wobei die Optionen zum Angeben eines neuen Dateinamens und zum Ersetzen der Zieldatei bereitgestellt werden, sofern sie bereits vorhanden ist. |
Move(String, String)
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Verschiebt eine angegebene Datei an einen neuen Speicherort, wobei die Option zum Angeben eines neuen Dateinamens bereitgestellt wird.
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)
Parameter
- sourceFileName
- String
Der Name der zu verschiebenden Datei. Kann einen relativen oder absoluten Pfad enthalten.
- destFileName
- String
Der neue Pfad und name für die Datei.
Ausnahmen
destFileName ist bereits vorhanden.
- oder -
Es ist ein E/A-Fehler aufgetreten, z. B. beim Kopieren der Datei auf Datenträgervolumes.
sourceFileName wurde nicht gefunden.
sourceFileName oder destFileName ist null.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind oder sourceFileNamedestFileName eine leere Zeichenfolge sind, nur Leerzeichen enthalten oder ungültige Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars() Methode abfragen.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der in sourceFileName oder destFileName ist ungültige Pfad (z. B. auf einem nicht zugeordneten Laufwerk).
sourceFileName oder destFileName weist ein ungültiges Format auf.
Beispiele
Im folgenden Beispiel wird eine Datei verschoben.
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
Hinweise
Diese Methode funktioniert über Datenträgervolumes hinweg und löst keine Ausnahme aus, wenn die Quelle und das Ziel identisch sind.
Beachten Sie, dass beim Versuch, eine Datei durch Verschieben einer Datei mit demselben Namen in dieses Verzeichnis zu ersetzen, ein IOException Fehler ausgelöst wird. So vermeiden Sie dieses Problem:
In .NET Core 3.0 und höheren Versionen können Sie die Einstellung des Parameters
overwritetrueaufrufenMove(String, String, Boolean), auf den die Datei ersetzt wird, falls vorhanden.In allen .NET-Versionen können Sie zum Kopieren mit Überschreiben aufrufen Copy(String, String, Boolean) und dann
Deletedie übermäßige Quelldatei entfernen. Diese Strategie ist nicht atomisch, da ein System oder programmabsturz während der Ausführung möglicherweiseCopyeine teilweise geschriebene Zieldatei hinterlassen, aber es wird sichergestellt, dass eine (möglicherweise unvollständige) Datei immer am Ziel vorhanden ist.In allen .NET-Versionen können Sie vor dem Aufrufen
MoveaufrufenDelete(String), wodurch die Datei nur gelöscht wird, wenn sie vorhanden ist.
Die sourceFileName Argumente destFileName können relative oder absolute Pfadinformationen enthalten. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Das Verschieben der Datei über Datenträgervolumes entspricht dem Kopieren der Datei und dem Löschen aus der Quelle, wenn das Kopieren erfolgreich war.
Wenn Sie versuchen, eine Datei auf Datenträgervolumes zu verschieben und diese Datei verwendet wird, wird die Datei an das Ziel kopiert, aber nicht aus der Quelle gelöscht.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- Datei- und Stream-E/A
- Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für:
Move(String, String, Boolean)
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Verschiebt eine angegebene Datei an einen neuen Speicherort, wobei die Optionen zum Angeben eines neuen Dateinamens und zum Ersetzen der Zieldatei bereitgestellt werden, sofern sie bereits vorhanden ist.
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)
Parameter
- sourceFileName
- String
Der Name der zu verschiebenden Datei. Kann einen relativen oder absoluten Pfad enthalten.
- destFileName
- String
Der neue Pfad und name für die Datei.
- overwrite
- Boolean
true die Zieldatei zu ersetzen, sofern sie bereits vorhanden ist; false Andernfalls.
Ausnahmen
destFileName ist bereits vorhanden und overwrite ist false.
- oder -
Es ist ein E/A-Fehler aufgetreten, z. B. beim Kopieren der Datei auf Datenträgervolumes.
sourceFileName wurde nicht gefunden.
sourceFileName oder destFileName ist null.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind oder sourceFileNamedestFileName eine leere Zeichenfolge sind, nur Leerzeichen enthalten oder ungültige Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars() Methode abfragen.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
- oder -
Das Betriebssystem konnte keinen exklusiven Zugriff auf die Zieldatei erhalten.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der in sourceFileName oder destFileName ist ungültige Pfad (z. B. auf einem nicht zugeordneten Laufwerk).
sourceFileName oder destFileName weist ein ungültiges Format auf.
Beispiele
Im folgenden Beispiel wird eine Datei verschoben.
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
Hinweise
Diese Methode funktioniert über Datenträgervolumes hinweg und löst keine Ausnahme aus, wenn die Quelle und das Ziel identisch sind.
Die sourceFileName Argumente destFileName können relative oder absolute Pfadinformationen enthalten. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Das Verschieben der Datei über Datenträgervolumes entspricht dem Kopieren der Datei und dem Löschen aus der Quelle, wenn das Kopieren erfolgreich war.
Wenn Sie versuchen, eine Datei auf Datenträgervolumes zu verschieben und diese Datei verwendet wird, wird die Datei an das Ziel kopiert, aber nicht aus der Quelle gelöscht.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- Datei- und Stream-E/A
- Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei