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

 1         private static void CopyDir(DirectoryInfo origin, string target)
 2         {
 3             if (!target.EndsWith("\\"))
 4             {
 5                 target += "\\";
 6             }
 7             if (!Exist(target))
 8             {
 9                 Create(target);
10                 //Create(target, origin.GetAccessControl());
11             }
12             FileInfo[] fileList = origin.GetFiles();
13             DirectoryInfo[] dirList = origin.GetDirectories();
14             foreach (FileInfo fi in fileList)
15             {
16                 File.Copy(fi.FullName, target + fi.Name, true);
17             }
18             foreach (DirectoryInfo di in dirList)
19             {
20                 CopyDir(di, target + di.Name);
21             }
22             DirectoryInfo tmp = new DirectoryInfo(target);
23             tmp.Attributes = origin.Attributes;
24             tmp.SetAccessControl(origin.GetAccessControl());
25         }
26
27         private static void CopyDir(string origin, string target)
28         {
29             if (!origin.EndsWith("\\"))
30             {
31                 origin += "\\";
32             }
33             if (!target.EndsWith("\\"))
34             {
35                 target += "\\";
36             }
37
38             DirectoryInfo info = new DirectoryInfo(origin);
39             if (!Exist(target))
40             {
41                 Create(target,info.GetAccessControl());//创建目录,访问权限
42             }
43
44             FileInfo[] fileList = info.GetFiles();
45             DirectoryInfo[] dirList = info.GetDirectories();
46             foreach (FileInfo fi in fileList)
47             {
48                 File.Copy(fi.FullName, target + fi.Name, true);
49             }
50             foreach (DirectoryInfo di in dirList)
51             {
52                 //CopyDir(origin + "\\" + di.Name, target + "\\" + di.Name);
53                 CopyDir(di.FullName, target + "\\" + di.Name);
54             }
55             //设置目录属性和访问权限
56             DirectoryInfo tmp = new DirectoryInfo(target);
57             tmp.Attributes = info.Attributes;
58             tmp.SetAccessControl(info.GetAccessControl());
59         }
时间: 2024-10-31 18:10:31

C# 目录(文件夹)复制实现的相关文章

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

字节流两套:         java.lang.Object--java.io.OutputStream--java.io.FileOutputStream         java.lang.Object--java.io.InputStream--java.io.FileInputStream ================================================================== 一.OutputStream 抽象类(java.io) 字节输出

tomcat 目录文件夹作用(转)

(一):目录结构 tomcat的目录结构如下:  目录名 简介  bin 存放启动和关闭tomcat脚本  conf 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xml  work 存放jsp编译后产生的class文件  webapp 存放应用程序示例,以后你要部署的应用程序也要放到此目录  .在(包)WEB-INF/src中写的.java文件会被自动编译成.class文件后转存到WEB-INF文件夹下的classes文件夹下.logs 存放日志文件  lib

如何将一个文件夹复制到另一个文件夹中并保留其权限

概要 本文分步介绍了如何将一个文件夹复制到另一个文件夹中并保留其权限.   当您使用 Windows Explorer 复制或移动文件和文件夹时,在这些文件或文件夹上设置的权限可能会发生改变.例如,当您在一个 NTFS 文件系统卷内或在两个 NTFS 卷之间复制一个文件时,Windows 2000 将把它当作一个新文件.作为一个新文件,它将具有目标文件夹的权限,您将成为"创建者所有者".    注意:您必须对目标文件夹具有"写"权限才能复制文件和文件夹.    可以

java 文件、文件夹复制

文件复制 public static void copyFile(String oldPath, String newPath) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { File oldFile = new File(oldPath); File file = new File(newPath); in = new FileInputStream(oldFile); ou

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

众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录.这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们解决这个问题. shopt 是一个 shell 内置命令,用于设置和取消设置各种 bash shell 选项,由于它已安装,因此我们不需要再次安装它. 是的,我们可以在启用此选项后,可以不使用 cd 命令切换目录. 我们将在本文中向你展示如何操作.这是一个小的调整,但对于那些从 Windows 迁移到 Linux 的新手来说非常有用. 这对 Linux 管理

Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构

import os,shutil def newDir(dir_path): if not os.path.exists(dir_path): os.makedirs(dir_path) def copydir(where_path,go_path,start_time,end_time): newDir(go_path) for brand in os.listdir(where_path): brand_path = os.path.join(where_path, brand) #prin

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

[java] view plain copy import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.PrintWriter; public  class  CopyFile  { public  CopyFile()  { } /** *  

dos文件(夹)复制命令:copy和xcopy

1.copy命令 将一份或多份文件复制到另一个位置. COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要复制的文件. /A 表示一个 ASCII 文本文件. /B 表示一个二进位文件. /D 允许解密要创建的目标文件 destination 为新文件指定目录和/或文件名. /V 验证新

linux命令の删除文件和文件夹 复制粘贴文件和文件夹

声明:此博文来自百度经验http://jingyan.baidu.com/article/642c9d34dcba80644a46f72d.html,谢谢分享! linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思 删除文件夹实例:rm -rf /var/log/http