Heim > Backend-Entwicklung > C++ > Wie kopiere ich den Inhalt eines Verzeichnisses in C# rekursiv?

Wie kopiere ich den Inhalt eines Verzeichnisses in C# rekursiv?

Barbara Streisand
Freigeben: 2025-01-26 19:51:09
Original
412 Leute haben es durchsucht

How to Recursively Copy a Directory's Contents in C#?

Verzeichnisinhalte rekursiv in C# kopieren

Das Kopieren des Inhalts eines gesamten Verzeichnisses ist eine häufige Aufgabe in der Softwareentwicklung. Obwohl es in System.IO anscheinend keinen direkten Weg gibt, dies zu erreichen, gibt es Alternativen.

Eine Problemumgehung besteht darin, die Klasse Microsoft.VisualBasic.Devices.Computer zu verwenden, auf die durch Hinzufügen eines Verweises auf Microsoft.VisualBasic zugegriffen werden kann:

<code class="language-csharp">new Microsoft.VisualBasic.Devices.Computer().
    FileSystem.CopyDirectory(sourceFolder, outputFolder);</code>
Nach dem Login kopieren

Dieser Ansatz gilt jedoch nicht als elegante Lösung. Ein robusterer Ansatz umfasst die folgenden Schritte:

  1. Erstellen Sie alle erforderlichen Verzeichnisse im Zielpfad, damit sie der Struktur des Quellverzeichnisses entsprechen.
  2. Kopiert jede Datei vom Quellpfad in den entsprechenden Zielpfad und überschreibt alle vorhandenen Dateien mit demselben Namen.

Der folgende Code demonstriert diesen Ansatz:

<code class="language-csharp">private static void CopyFilesRecursively(string sourcePath, string targetPath)
{
    // 在目标路径中创建目录
    foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
    {
        Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath));
    }

    // 将文件从源路径复制到目标路径
    foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories))
    {
        File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true);
    }
}</code>
Nach dem Login kopieren

Diese Methode kopiert rekursiv das gesamte Quellverzeichnis (einschließlich Unterverzeichnisse und Dateien) in das angegebene Zielverzeichnis. Es ersetzt auch alle vorhandenen Dateien mit demselben Namen.

Das obige ist der detaillierte Inhalt vonWie kopiere ich den Inhalt eines Verzeichnisses in C# rekursiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage