Rumah > pembangunan bahagian belakang > C++ > Bagaimana cara menyalin kandungan direktori secara rekursif di C#?

Bagaimana cara menyalin kandungan direktori secara rekursif di C#?

Barbara Streisand
Lepaskan: 2025-01-26 19:51:09
asal
412 orang telah melayarinya

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

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>
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini tidak dianggap sebagai penyelesaian yang elegan. Pendekatan yang lebih mantap melibatkan langkah berikut:

  1. Buat semua direktori yang diperlukan dalam laluan sasaran untuk memadankan struktur direktori sumber.
  2. Menyalin setiap fail daripada laluan sumber ke laluan destinasi yang sepadan, menimpa mana-mana fail sedia ada dengan nama yang sama.

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan