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# 目录(文件夹)复制实现的更多相关文章

  1. java文件和文件夹复制、删除、移动操作

    java文件和文件夹复制.删除.移动操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...

  2. linux 将一个服务器上的文件或者文件夹复制到另一台服务器上

    使用scp将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上 复制文件或文件夹(目录)命令:  一.复制文件:  (1)将本地文件拷贝到远程  scp 文件名 用户名@计算机IP或者计 ...

  3. [转]linux将一个服务器上的文件或者文件夹复制到另一台服务器上

    本文转载自<linux 将一个服务器上的文件或者文件夹复制到另一台服务器上>,有时间实践一把 使用scp将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上 复制文件或文件夹 ...

  4. C# 1.将整个文件夹复制到目标文件夹中 2.将指定文件复制到指定目标文件夹中

    ].Items.Clear(); string filePath = Application.StartupPath; string sourcePath = Path.Combine(filePat ...

  5. kotlin单个文件及文件夹复制例子

    最近学习kotlin,把java中的单个文件及包含文件夹的文件 复制操作改写为kotlin的代码,主要熟悉kotlin文件操作以及递归调用操作方法 演示代码如下: package com.exam.f ...

  6. python之对指定目录文件夹的批量重命名

    python之对指定目录文件夹的批量重命名 import os,shutil,string dir = "/Users/lee0oo0/Documents/python/test" ...

  7. TortoiseSVN设置忽略文件和目录文件夹

    TortoiseSVN设置忽略文件和目录文件夹  在多数项目中你总会有文件和目录不需要进行版本控制.这可能包括一些由编译器生成的文件,*.obj,*.lst,或许是一个用于存放可执行程序的输出文件夹. ...

  8. 启用shopt 选项实现不使用 CD 命令进入目录/文件夹

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录.这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们解决这个问题. shopt 是一个 shell 内置命令,用 ...

  9. OutputStream-InputStream-FileOutputStream-FileInputStream-BufferedOutputStream-BufferedInputStream-四种复制方式-单层文件夹复制

    字节流两套:         java.lang.Object--java.io.OutputStream--java.io.FileOutputStream         java.lang.Ob ...

随机推荐

  1. 最少知识原则(Least Knowledge Principle)

    最少知识原则(Least Knowledge Principle),或者称迪米特法则(Law of Demeter),是一种面向对象程序设计的指导原则,它描述了一种保持代码松耦合的策略.其可简单的归纳 ...

  2. 作业三:PSP记录个人项目耗时情况

    PSP2.1        Personal Software Process Stages Time Planning  计划    20min              Estimate 估计开发 ...

  3. node.js小结 2

    下载node安装npm什么的就不说了 入门总结 http://www.cnblogs.com/Darren_code/archive/2011/10/31/nodejs.html 进入node_HOM ...

  4. redis常用命令小结

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/107.html?1455867352 1.redis-benchmarkr ...

  5. salesforce 零基础学习(三十八)Translate 的使用(国际化处理)

    本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf ...

  6. POI生成WORD文档

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  7. 用Chrome插件对自动化测试TestWriter进行录制

    1.打开Chrome浏览器,在浏览地址中输入: chrome://extensions/,并勾选开发者模式.如图: 2.点击按钮[加载已解压的扩展程序-].如图: 3.选择Testwriter客户端下 ...

  8. JS生成1000个数字加字母的不重复的随机字符串

    周五,快下班了,正收拾东西准备走人,项目经理突然让我给他做个Excel,1000个数字加字母组合的密码,不重复,下班前给. 我直接懵了,Excel不会,估计是要写个什么命令才能生成出来,于是想着有没有 ...

  9. 优化与扩展Mybatis的SqlMapper解析

    接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件. 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis ...

  10. css绘制三角形原理

    1.新建一个元素,将它的宽高都设置为0:然后通过设置border属性来实现三角形效果,下面是css绘制三角形的原理: <!DOCTYPE html> <html> <he ...