Salin kandungan direktori secara rekursif dalam C#
Menyalin kandungan keseluruhan direktori ialah tugas biasa dalam pembangunan perisian. Walaupun nampaknya tidak ada cara langsung untuk mencapai ini dalam System.IO, alternatif wujud.
Penyelesaian adalah dengan menggunakan kelas Microsoft.VisualBasic.Devices.Computer, yang boleh diakses dengan menambahkan rujukan kepada Microsoft.VisualBasic:
<code class="language-csharp">new Microsoft.VisualBasic.Devices.Computer(). FileSystem.CopyDirectory(sourceFolder, outputFolder);</code>
Walau bagaimanapun, pendekatan ini tidak dianggap sebagai penyelesaian yang elegan. Pendekatan yang lebih mantap melibatkan langkah berikut:
Kod berikut menunjukkan pendekatan ini:
<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>
Kaedah ini menyalin keseluruhan direktori sumber (termasuk subdirektori dan fail) secara rekursif ke direktori sasaran yang ditentukan. Ia juga menggantikan mana-mana fail sedia ada dengan nama yang sama.
Atas ialah kandungan terperinci Bagaimana cara menyalin kandungan direktori secara rekursif di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!