Teilen über


File.Move Methode

Definition

Überlädt

Move(String, String)

Verschiebt eine angegebene Datei an einen neuen Speicherort und ermöglicht das Angeben eines neuen Dateinamens.

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

Verschiebt eine angegebene Datei an einen neuen Speicherort und ermöglicht das Angeben eines neuen Dateinamens.

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 absoluten oder relativen Pfad enthalten.

destFileName
String

Der neue Pfad und Name für die Datei.

Ausnahmen

destFileName ist bereits vorhanden.

- oder -

Ein E/A-Fehler ist 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 älter als 2.1: sourceFileName oder destFileName ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Der in sourceFileName oder destFileName angegebene Pfad ist ungültig (er befindet sich 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 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

Hinweise

Diese Methode funktioniert auf Datenträgervolumes und löst keine Ausnahme aus, wenn Quelle und Ziel identisch sind.

Wenn Sie versuchen, eine Datei zu ersetzen, indem Sie eine Datei mit demselben Namen in dieses Verzeichnis verschieben, wird eine IOException ausgelöst. So vermeiden Sie dieses Problem:

  • In .NET Core 3.0 und höheren Versionen können Sie aufrufen, indem Sie den Parameter overwrite auf truefestlegenMove(String, String, Boolean), wodurch die Datei ersetzt wird, sofern vorhanden.

  • In allen .NET-Versionen können Sie zum Kopieren mit Überschreibung aufrufen Copy(String, String, Boolean) und dann aufrufen Delete , um die überschüssige Quelldatei zu entfernen. Diese Strategie ist ratsam, wenn die zu kopierende Datei klein ist und Sie nach einem "atomischen" Dateivorgang suchen. Wenn Sie Delete zuerst die Datei verwenden und das System oder Programm abstürzt, ist die Zieldatei nicht mehr vorhanden.

  • In allen .NET-Versionen können Sie aufrufen Delete(String) , bevor Sie aufrufen Move, wodurch die Datei nur gelöscht wird, wenn sie vorhanden ist.

Die sourceFileName Argumente und 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 zwischen Datenträgervolumes entspricht dem Kopieren der Datei und dem Löschen aus der Quelle, wenn der Kopiervorgang erfolgreich war.

Wenn Sie versuchen, eine Datei auf Datenträgervolumes zu verschieben und diese Datei verwendet wird, wird die Datei in das Ziel kopiert, aber nicht aus der Quelle gelöscht.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Weitere Informationen

Gilt für:

Move(String, String, Boolean)

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 absoluten oder relativen Pfad enthalten.

destFileName
String

Der neue Pfad und Name für die Datei.

overwrite
Boolean

true , um die Zieldatei zu ersetzen, sofern sie bereits vorhanden ist; false Andernfalls.

Ausnahmen

destFileName ist bereits vorhanden, und overwrite ist false.

- oder -

Ein E/A-Fehler ist 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 älter als 2.1: sourceFileName oder destFileName ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

- oder -

Das Betriebssystem konnte keinen exklusiven Zugriff auf die Zieldatei abrufen.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Der in sourceFileName oder destFileName angegebene Pfad ist ungültig (er befindet sich 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 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

Hinweise

Diese Methode funktioniert auf Datenträgervolumes und löst keine Ausnahme aus, wenn Quelle und Ziel identisch sind.

Die sourceFileName Argumente und 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 zwischen Datenträgervolumes entspricht dem Kopieren der Datei und dem Löschen aus der Quelle, wenn der Kopiervorgang erfolgreich war.

Wenn Sie versuchen, eine Datei auf Datenträgervolumes zu verschieben und diese Datei verwendet wird, wird die Datei in das Ziel kopiert, aber nicht aus der Quelle gelöscht.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Weitere Informationen

Gilt für: