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>
Dieser Ansatz gilt jedoch nicht als elegante Lösung. Ein robusterer Ansatz umfasst die folgenden Schritte:
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>
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!