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
  • 2360

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

园友总结的很全,可以当工具书查阅了。 http://www.cnblogs.com/zhuzhiyuan/archive/2011/04/22/2024485.html, http://kb.cn...

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

using System; using System.Collections.Generic; using System.Text; using System.IO; namespace ...

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

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

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

C#追加文件     StreamWriter sw = File.AppendText(Server.MapPath(".")+"//myText.txt");     sw.WriteLine...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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