如何复制一个目录里面的所有目录和文件

本文介绍如何将一个目录里面的所有文件复制到目标目录里面。
下面介绍几个我们在该例程中将要使用的类:
1、Directory:Exposes static methods for creating, moving, and enumerating through directories and subdirectories.
2、Path:Performs operations on String instances that contain file or directory path information. These operations are performed in a cross-platform manner.
3、File:Provides static methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects.
这两个类里都是不可继承的,是从object直接继承来的,被实现成sealed,上面的解释均来自MSDN。
下面是实现的代码,代码中的细节不在这里详细描述,请看代码注释:
// ======================================================
// 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
// ======================================================
public static void CopyDir(string srcPath,string aimPath){
// 检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
aimPath += Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = Directory.GetFiles(srcPath);
string[] fileList = Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach(string file in fileList){
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(Directory.Exists(file))
CopyDir(file,aimPath+Path.GetFileName(file));
// 否则直接Copy文件
else
File.Copy(file,aimPath+Path.GetFileName(file),true);
}
}

嘿嘿!这次给大家说的功能比较简单,适合初学者,希望对初学者有所帮助!如果你需要将该功能使用在Web工程中,那么请设置给ASPNET帐号足够的权限,不过这样做是很危险的,不建议这样做。

时间: 2025-01-01 17:21:45

如何复制一个目录里面的所有目录和文件的相关文章

android开发-android 创建一个新项目时src目录下没有任何东西

问题描述 android 创建一个新项目时src目录下没有任何东西 用eclipse最新版本开发一个android程序,结果创建时src目录下没有任何东西(包),可以创建包,然后建class,但不能建一个Android Activity,以前还没有这个现象,但是我在Android Sdk Manager下载了很多Sdk版本后就这样了,很无奈,安卓开发菜鸟,求助各位大牛!

perl-Perl读取一个文件夹AAA下的多个子目录中的pssm.tx中文件的内容?

问题描述 Perl读取一个文件夹AAA下的多个子目录中的pssm.tx中文件的内容? Perl读取一个文件夹AAA下的多个子目录中的pssm.tx中文件的内容?也就是每个子目录下都有一同名的pssm.txt文件,她说矩阵,我要矩阵的一部分尽兴计算,可是现在我都读不到pssm.txt文件里! 解决方案 http://my.oschina.net/u/996206/blog/174443

代码-怎样能实现打开一个一级目录,在打开另一个一级目录时,上一个被打开的一级目录自动收起

问题描述 怎样能实现打开一个一级目录,在打开另一个一级目录时,上一个被打开的一级目录自动收起 怎样能实现打开一个一级目录,在打开另一个一级目录时,上一个被打开的一级目录自动收起? 希望能给一个详细的讲解,或者做着方面需要看那些书,给一些介绍,谢谢! 解决方案 看你用的什么语言/界面库.无非各自遍历treeview和展开折叠的具体api不同. 思路都是一样的,递归遍历另一个节点,并且折叠.有的api,比如winforms,提供了expendall方法,那么就一行就可以了.

工作目录下辖两个子目录./test6 ./test9,里面各含一个可执行的makefile

问题描述 工作目录下辖两个子目录./test6 ./test9,里面各含一个可执行的makefile 1 sources=./test6 ./test9 2 var=$(foreach dir,$(sources),$(MAKE) -C $(dir)) 3 all: 4 @echo $(var) 运行: make -C ./test6 make -C ./test9 完全没达到,运行两目录下的makefile的目的 解决方案 var=$(foreach dir,$(sources),$(MAKE

我希望能复制一个文件件里的多张图片到另外一个文件夹用file.copy有问题

问题描述 我希望能复制一个文件件里的多张图片到另外一个文件夹用file.copy有问题 private void button1_Click(object sender, EventArgs e) { File.Copy(@"C:UsershjxDesktop33333",@"E:TESTJavaScriptTESTJavaScriptTESTima"); //FileInfo fi = new FileInfo(@"C:UsershjxDesktop33

提高项目的可维性:目录组织结构清晰和目录的深度不要多

    不使用单一入口的框架开发,代码和目录的数量越来越臃肿,项目维护成本很高   没有反面例子来做借鉴,人的大脑不以为然.下面的截图就是一个中型项目后来变成的目录结构,项目的代码越来越乱,开发人员不愿意去维护这个系统的代码,因为去找代码进行修改,变得很痛苦,代码混乱,目录很众多,找代码会看花眼. 是一套典型是基于discuz的ucenter的系统,随着公司业务量越来越大,随着时间的推移,对系统增加的功能越来越多,后来开发人员越来越多.这样一套系统,维护起来很困难.       具体到里面代码,

word文档怎么生成目录以及怎么微调目录?

  word文档怎么生成目录以及怎么微调目录?你还在手动输入一篇文章的目录吗?还在一页一页的核对目录的页码和正文的页码是否一 一对应吗? 生成目录的前期准备工作 1.首先,看一个word文档,我把需要生成目录的地方用框框标出来,由于图片大致一样,所以只是标记了第一页. 注:文章内容只是演示用,从互联网上收集的,和介绍本经验无关. 2.鼠标左键选中要生成目录的文字内容 3.鼠标右键"段落",做如图红框内的设置,具体大纲级别已你实际需求为准 4.单击"确定",回到正文编

LFCS 系列第三讲:归档/压缩文件及目录、设置文件属性和搜索文件

LFCS 系列第三讲:归档/压缩文件及目录.设置文件属性和搜索文件 最近,Linux 基金会发起了一个全新的 LFCS(Linux 基金会认证系统管理员Linux Foundation Certified Sysadmin)认证,旨在让遍布全世界的人都有机会参加该认证的考试,通过考试的人将表明他们有能力在 Linux 上执行基本的中级系统管理任务.这项认证包括了对已运行的系统和服务的支持.一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力. LFCS 系列第三讲 请看以下视频,这里

linux目录详解linux目录结构详细分析_unix linux

根文件系统一般应该比较小,因为包括严格的文件和一个小的不经常改变的文件系统不容易损坏.损坏的根文件系统一般意味着除非用特定的方法(例如从软盘)系统无法引导,所以不应该冒这个险.根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz .所有其他文件在根文件系统的子目录中. /bin 引导启动所需的命令或普通用户可能用的命令(可能在引导启动后). /sbin 类似/bin ,但不给普通用户使用,虽然如果必要且允许时可以使用. /etc 特定机器的配置文件. /root root

图片-请问:怎么用java代码实现word中的超链接?如图中的形式,当点击目录时,出现目录的信息

问题描述 请问:怎么用java代码实现word中的超链接?如图中的形式,当点击目录时,出现目录的信息 解决方案 应该就是点一个东西,然后把翻到第多少页. 解决方案二: 找插件实现