软件编程
位置:首页>> 软件编程>> C#编程>> c#深拷贝文件夹示例

c#深拷贝文件夹示例

  发布时间:2023-07-24 07:50:40 

标签:c#,文件夹


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace FileUtility
{
    public class Program
    {
        public static void DeepCopy(DirectoryInfo source, DirectoryInfo target, params string[] excludePatterns)
        {
            if (target.FullName.Contains(source.FullName))
                return;

            // Go through the Directories and recursively call the DeepCopy Method for each one
            foreach (DirectoryInfo dir in source.GetDirectories())
            {
                var dirName = dir.Name;
                var shouldExclude = excludePatterns.Aggregate(false, (current, pattern) => current || Regex.Match(dirName, pattern).Success);

                if (!shouldExclude)
                    DeepCopy(dir, target.CreateSubdirectory(dir.Name), excludePatterns);
            }

            // Go ahead and copy each file to the target directory
            foreach (FileInfo file in source.GetFiles())
            {
                var fileName = file.Name;
                var shouldExclude = excludePatterns.Aggregate(false,
                                                              (current, pattern) =>
                                                              current || Regex.Match(fileName, pattern).Success);

                if (!shouldExclude)
                    file.CopyTo(Path.Combine(target.FullName, fileName));
            }
        }

        static void Main(string[] args)
        {
            DeepCopy(new DirectoryInfo(@"d:/test/b"), new DirectoryInfo(@"d:/test/a"));
            DeepCopy(new DirectoryInfo(@"d:/test/c"), new DirectoryInfo(@"d:/test/c/c.1"));
            DeepCopy(new DirectoryInfo(@"d:/test/1/"), new DirectoryInfo(@"d:/test/2/"), new string[] { ".*\\.txt" });

            Console.WriteLine("复制成功...");
            Console.ReadKey();
        }
    }
}

0
投稿

猜你喜欢

  • Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。Field 成员变量的介
  • mybatis-plus 查询传入参数Map,返回List<Map>原因有时实体类属性不够用,又不想写自定义VO了,所以用map
  • 自定义注解方式防止前端同一时间多次重复提交一、 前情提要有这样一个业务,上课的时候老师给表现好的学生送小花花,每节课都能统计出某个学生收到的
  • Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和
  • spring Boot 熟悉后,集成一个外部扩展是一件很容易的事,集成Redis也很简单,看下面步骤配置:一、添加pom依赖  
  • 一、概要1.Java虚拟机(Jvm)是什么?2.Java虚拟机是用来干什么的?3.Java虚拟机它的体系结构是什么样子的?4.Java虚拟机
  • 文件资源操作Spring 定义了一个 org.springframework.core.io.Resource 接口,Resource 接口
  • 本文实例为大家分享了springboot实现异步任务的具体代码,供大家参考,具体内容如下1.什么异步任务同步:一定要等任务执行完了,得到结果
  • 本文介绍了Java设计模式之享元模式,供大家参考,具体内容如下1、关于享元模式享元模式有点类似于单例模式,都是只生成一个对象被共享使用。享元
  • 1、同步消息即时性较强,重要的消息,且必须有回执的消息,例如短信,通知(转账成功)生产者:public class Producer { &
  • 前言在一个小项目中,需要用到京东的所有商品ID,因此就用c#写了个简单的爬虫。在解析HTML中没有使用正则表达式,而是借助开源项目HtmlA
  • 很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。在讨论
  • 项目开发中,经常会遇到定时任务的场景,Spring提供了@Scheduled注解,方便进行定时任务的开发概述要使用@Scheduled注解,
  • 1 简介AOP,即面向切面编程是很常用的技术,特别是在Java Web开发中。而最流行的AOP框架分别是Spring AOP和AspectJ
  • 一、泛型集合List<T>排序经sort方法之后,采用了升序的方式进行排列的。 List<int> list = n
  • 本文实例讲述了C#实现系统托盘通知的方法。分享给大家供大家参考。具体实现方法如下:namespace WindowsApplication1
  • 在我们将Winform自带的边框隐藏之后,我们需要自己编写窗口的移动。思路就是1.获得点击左键时当前鼠标的坐标2.获得移动后鼠标的坐标3.窗
  • 五子棋游戏(Java),供大家参考,具体内容如下思路:1.首先创建一个棋盘,建立一个二维数组,此文中为一个15*15的二维数组,2.初始化棋
  • Activity中Toast的使用Toast.makeText(this,"ADD",Toast.LENGTH_SHOR
  • 在项目中使用Maven管理jar包依赖,往往会出现以下状况:1、国内访问maven默认远程中央镜像特别慢;2、使用阿里的镜像替代远程中央镜像
手机版 软件编程 asp之家 www.aspxhome.com