当前位置:  编程技术>.net/c#/asp.net

c#深拷贝文件夹示例

    来源: 互联网  发布时间:2014-10-30

    本文导语:  代码如下: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 sour...

代码如下:

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();
        }
    }
}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用jdk7的nio2操作文件拷贝和剪切示例 iis7站长之家
  • 如何将整个文件夹都拷贝过去?
  • 如何拷贝linux文件夹
  • 弱问:如何在Shell脚本中实现拷贝文件到用户桌面文件夹?
  • !SUN的一道面试题,如何用程序实现支持通配符的文件及文件夹拷贝
  • python中的深拷贝(deepcopy)和浅拷贝(copy)介绍及代码参考
  • C++拷贝构造函数(深拷贝与浅拷贝)详解
  • Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
  • 关于redhat linux7.3文件拷贝:我要将/dev下的全部文件拷贝到另一个已mount的硬盘上,怎么大部分文件拷不过去呢??
  • 快速文件拷贝工具 FastCopy
  • scp远程拷贝问题
  • cp命令拷贝目录的问题 求教
  • 关于“零拷贝”问题
  • 从Linux拷贝文件时,总出现符号链接错误时怎么回事?
  • 如何用shell脚本实现二进制拷贝?
  • 拷贝文件的问题
  • vim 如何段拷贝。
  • [Suse Linux]两台机器上怎样能快速拷贝大量的文件
  • RH9下文件拷贝出错问题,求教
  • DVD 拷贝工具 dvd:rip
  • fpt拷贝文件问题
  • 两台UNIX机器之见如何拷贝文件
  • 远程拷贝目录的问题
  • 求简单文件拷贝命令??
  • 求教一下关于目录拷贝命令
  • vi 中如何能够一次拷贝,多次连续粘贴?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3