Auf Englisch lesen

Freigeben über


File.Copy Methode

Definition

Kopiert eine vorhandene Datei in eine neue Datei.

Überlädt

Copy(String, String)

Kopiert eine vorhandene Datei in eine neue Datei. Das Überschreiben einer Datei mit demselben Namen ist nicht zulässig.

Copy(String, String, Boolean)

Kopiert eine vorhandene Datei in eine neue Datei. Das Überschreiben einer Datei mit demselben Namen ist zulässig.

Copy(String, String)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Kopiert eine vorhandene Datei in eine neue Datei. Das Überschreiben einer Datei mit demselben Namen ist nicht zulässig.

C#
public static void Copy (string sourceFileName, string destFileName);

Parameter

sourceFileName
String

Die zu kopierende Datei.

destFileName
String

Der Name der Zieldatei. Dies kann kein Verzeichnis oder eine vorhandene Datei sein.

Ausnahmen

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

sourceFileName oder destFileName eine leere Zeichenfolge ist, nur Leerzeichen enthält oder mindestens ein ungültiges Zeichen enthält. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode abfragen.

-oder-

sourceFileName oder destFileName gibt ein Verzeichnis an.

sourceFileName oder destFileName ist null.

Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.

Der in sourceFileName oder destFileName angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

sourceFileName wurde nicht gefunden.

destFileName ist vorhanden.

-oder-

Ein E/A-Fehler ist aufgetreten.

sourceFileName oder destFileName weist ein ungültiges Format auf.

Beispiele

Im folgenden Beispiel werden Dateien in den Sicherungsordner "C:\archives\2008" kopiert. Es verwendet die beiden Überladungen der Copy-Methode wie folgt:

  • Zunächst wird die File.Copy(String, String) Methodenüberladung verwendet, um Textdateien (.txt) zu kopieren. Der Code veranschaulicht, dass diese Überladung das Überschreiben von Dateien, die bereits kopiert wurden, nicht zulässt.

  • Anschließend wird die File.Copy(String, String, Boolean) Methodenüberladung verwendet, um Bilder (.jpg Dateien) zu kopieren. Der Code veranschaulicht, dass diese Überladung das Überschreiben von Dateien ermöglicht, die bereits kopiert wurden.

C#
string sourceDir = @"c:\current";
string backupDir = @"c:\archives\2008";

try
{
    string[] picList = Directory.GetFiles(sourceDir, "*.jpg");
    string[] txtList = Directory.GetFiles(sourceDir, "*.txt");

    // Copy picture files.
    foreach (string f in picList)
    {
        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        // Use the Path.Combine method to safely append the file name to the path.
        // Will overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true);
    }

    // Copy text files.
    foreach (string f in txtList)
    {

        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        try
        {
            // Will not overwrite if the destination file already exists.
            File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
        }

        // Catch exception if the file was already copied.
        catch (IOException copyError)
        {
            Console.WriteLine(copyError.Message);
        }
    }

    // Delete source files that were copied.
    foreach (string f in txtList)
    {
        File.Delete(f);
    }
    foreach (string f in picList)
    {
        File.Delete(f);
    }
}

catch (DirectoryNotFoundException dirNotFound)
{
    Console.WriteLine(dirNotFound.Message);
}

Hinweise

Diese Methode entspricht der Copy(String, String, Boolean) Methodenüberladung mit dem overwrite Parameter, der auf falsefestgelegt ist.

Die Parameter sourceFileName und destFileName können relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter der Directory.GetCurrentDirectory-Methode. Diese Methode unterstützt keine Wildcardzeichen in den Parametern.

Die Attribute der Originaldatei werden in der kopierten Datei beibehalten.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Copy(String, String, Boolean)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Kopiert eine vorhandene Datei in eine neue Datei. Das Überschreiben einer Datei mit demselben Namen ist zulässig.

C#
public static void Copy (string sourceFileName, string destFileName, bool overwrite);

Parameter

sourceFileName
String

Die zu kopierende Datei.

destFileName
String

Der Name der Zieldatei. Dies kann kein Verzeichnis sein.

overwrite
Boolean

true, wenn die Zieldatei ersetzt werden soll, wenn sie bereits vorhanden ist; andernfalls false.

Ausnahmen

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

-oder-

destFileName ist schreibgeschützt.

-oder-

overwrite ist true, destFileName ist vorhanden und ausgeblendet, aber sourceFileName ist nicht ausgeblendet.

sourceFileName oder destFileName eine leere Zeichenfolge ist, nur Leerzeichen enthält oder mindestens ein ungültiges Zeichen enthält. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode abfragen.

-oder-

sourceFileName oder destFileName gibt ein Verzeichnis an.

sourceFileName oder destFileName ist null.

Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.

Der in sourceFileName oder destFileName angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

sourceFileName wurde nicht gefunden.

destFileName vorhanden und overwrite ist false.

-oder-

Ein E/A-Fehler ist aufgetreten.

sourceFileName oder destFileName weist ein ungültiges Format auf.

Beispiele

Im folgenden Beispiel werden Dateien in den Sicherungsordner "C:\archives\2008" kopiert. Es verwendet die beiden Überladungen der Copy-Methode wie folgt:

  • Zunächst wird die File.Copy(String, String) Methodenüberladung verwendet, um Textdateien (.txt) zu kopieren. Der Code veranschaulicht, dass diese Überladung das Überschreiben von Dateien, die bereits kopiert wurden, nicht zulässt.

Anschließend wird die File.Copy(String, String, Boolean) Methodenüberladung verwendet, um Bilder (.jpg Dateien) zu kopieren. Der Code veranschaulicht, dass diese Überladung das Überschreiben von Dateien ermöglicht, die bereits kopiert wurden.

C#
string sourceDir = @"c:\current";
string backupDir = @"c:\archives\2008";

try
{
    string[] picList = Directory.GetFiles(sourceDir, "*.jpg");
    string[] txtList = Directory.GetFiles(sourceDir, "*.txt");

    // Copy picture files.
    foreach (string f in picList)
    {
        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        // Use the Path.Combine method to safely append the file name to the path.
        // Will overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true);
    }

    // Copy text files.
    foreach (string f in txtList)
    {

        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        try
        {
            // Will not overwrite if the destination file already exists.
            File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
        }

        // Catch exception if the file was already copied.
        catch (IOException copyError)
        {
            Console.WriteLine(copyError.Message);
        }
    }

    // Delete source files that were copied.
    foreach (string f in txtList)
    {
        File.Delete(f);
    }
    foreach (string f in picList)
    {
        File.Delete(f);
    }
}

catch (DirectoryNotFoundException dirNotFound)
{
    Console.WriteLine(dirNotFound.Message);
}

Hinweise

Die Parameter sourceFileName und destFileName können relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Diese Methode unterstützt keine Wildcardzeichen in den Parametern.

Die Attribute der Originaldatei werden in der kopierten Datei beibehalten.

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

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0