Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 复制文件夹

作者:浪子无家   发布日期:2025-11-22   浏览:51

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string sourceDirectory = @"C:\source";
        string destinationDirectory = @"C:\destination";

        try
        {
            // 确保目标目录不存在,如果存在则删除
            if (Directory.Exists(destinationDirectory))
            {
                Directory.Delete(destinationDirectory, true);
            }

            // 复制文件夹及其内容
            CopyDirectory(sourceDirectory, destinationDirectory);

            Console.WriteLine("文件夹复制成功!");
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生错误: " + ex.Message);
        }
    }

    static void CopyDirectory(string sourceDirName, string destDirName)
    {
        // 获取源文件夹中的所有文件和子文件夹
        DirectoryInfo dir = new DirectoryInfo(sourceDirName);
        DirectoryInfo[] dirs = dir.GetDirectories();

        // 如果目标文件夹不存在,则创建它
        if (!Directory.Exists(destDirName))
        {
            Directory.CreateDirectory(destDirName);
        }

        // 复制文件
        FileInfo[] files = dir.GetFiles();
        foreach (FileInfo file in files)
        {
            string temppath = Path.Combine(destDirName, file.Name);
            file.CopyTo(temppath, false);
        }

        // 递归复制子文件夹
        foreach (DirectoryInfo subdir in dirs)
        {
            string temppath = Path.Combine(destDirName, subdir.Name);
            CopyDirectory(subdir.FullName, temppath);
        }
    }
}

解释说明:

  1. 命名空间引用:代码使用了 SystemSystem.IO 命名空间,其中 System.IO 提供了处理文件和目录的功能。
  2. 主方法 (Main):
    • 定义了源文件夹路径 (sourceDirectory) 和目标文件夹路径 (destinationDirectory)。
    • 检查并删除已存在的目标文件夹(如果存在),以确保不会覆盖现有数据。
    • 调用 CopyDirectory 方法来复制文件夹及其内容。
  3. CopyDirectory 方法
    • 接受两个参数:源文件夹路径和目标文件夹路径。
    • 使用 DirectoryInfo 获取源文件夹中的所有文件和子文件夹。
    • 如果目标文件夹不存在,则创建它。
    • 遍历源文件夹中的所有文件,并将它们复制到目标文件夹中。
    • 递归调用 CopyDirectory 方法来复制每个子文件夹及其内容。

上一篇:c#字符串转时间

下一篇:c# oxyplot

大家都在看

c# 二进制

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站