C# 目录(文件夹)复制实现

原创 2015年07月10日 11:20:23

C#文件夹目录复制的核心代码:

private static void CopyDir(DirectoryInfo origin, string target)
        {
            if (!target.EndsWith("\\"))
            {
                target += "\\";
            }
            if (!Exist(target))
            {
                Create(target);
                //Create(target, origin.GetAccessControl());
            }
            FileInfo[] fileList = origin.GetFiles();
            DirectoryInfo[] dirList = origin.GetDirectories();
            foreach (FileInfo fi in fileList)
            {
                File.Copy(fi.FullName, target + fi.Name, true);
            }
            foreach (DirectoryInfo di in dirList)
            {
                CopyDir(di, target + di.Name);
            }
            DirectoryInfo tmp = new DirectoryInfo(target);
            tmp.Attributes = origin.Attributes;
            tmp.SetAccessControl(origin.GetAccessControl());
        }

        private static void CopyDir(string origin, string target)
        {
            if (!origin.EndsWith("\\"))
            {
                origin += "\\";
            }
            if (!target.EndsWith("\\"))
            {
                target += "\\";
            }

            DirectoryInfo info = new DirectoryInfo(origin);
            if (!Exist(target))
            {
                Create(target,info.GetAccessControl());//创建目录,访问权限
            }

            FileInfo[] fileList = info.GetFiles();
            DirectoryInfo[] dirList = info.GetDirectories();
            foreach (FileInfo fi in fileList)
            {
                File.Copy(fi.FullName, target + fi.Name, true);
            }
            foreach (DirectoryInfo di in dirList)
            {
                //CopyDir(origin + "\\" + di.Name, target + "\\" + di.Name);
                CopyDir(di.FullName, target + "\\" + di.Name);
            }
            //设置目录属性和访问权限
            DirectoryInfo tmp = new DirectoryInfo(target);
            tmp.Attributes = info.Attributes;
            tmp.SetAccessControl(info.GetAccessControl());
        }


版权声明:本文为博主原创文章,未经博主允许不得转载。

C#-文件复制到指定目录和复制文件夹中的所有数据

文件的复制操作也是文件处理过程中常用的操作,文件复制比较简单,File类中提供了很多方法,这里只实例演示File.Copy()的用法,其代码如下:string pLocalFilePath ="";/...

使用JAVA实现比较两个文件夹下的文件新增和修改情况,并复制到新的目录(实现增量更新项目)

- 0x00 前言 之前工作的时候,经常会有客户提交BUG或者新增一个功能等需求。于是我就会在我本地修改代码,然后再打包替换客户的项目。比较麻烦的是,每次更新都需要去SVN看看都改了哪些文...
  • zer0_o
  • zer0_o
  • 2015年07月11日 15:26
  • 2713

C#对API Windows文件文件夹目录

  • 2016年02月26日 17:35
  • 86KB
  • 下载

C#遍历目录下的所有文件夹

  • 2014年08月19日 19:56
  • 17KB
  • 下载

【转载】C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....

本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下 面的所有内容copy到目标文件夹下面、指定文件夹下面的所有内...

C#解压缩文件夹保存目录结构

  • 2011年09月14日 10:46
  • 50KB
  • 下载

C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名

C#追加文件     StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt");     sw.WriteLine("...

C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名

本文也收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下面的所有内容copy到目标文件夹下面、指定文件夹下面的所有内...
  • s2r2g
  • s2r2g
  • 2013年08月02日 15:22
  • 627

C#中拷贝整个文件夹下的所有文件到指定目录

public class File { /// /// copy文件夹下的所有文件 /// /// 要拷贝的文件夹路径 ...

C#遍历目录下的所有文件夹

using System; using System.Collections.Generic; using System.Text; using System.IO; namespace ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 目录(文件夹)复制实现
举报原因:
原因补充:

(最多只允许输入30个字)