public void CopyFilesToDirKeepSrcDirName(string srcPath, string destDir)
{
if (Directory.Exists(srcPath))
{
DirectoryInfo srcDirectory = new DirectoryInfo(srcPath);
CopyDirectory(srcPath, destDir + @"\" + srcDirectory.Name);
}
else
{
CopyFile(srcPath, destDir);
}
}
public void CopyFilesToDir(string srcPath, string destDir)
{
if(Directory.Exists(srcPath))
{
CopyDirectory(srcPath, destDir);
}
else
{
CopyFile(srcPath, destDir);
}
}
private void CopyDirectory(string srcDir, string destDir)
{
DirectoryInfo srcDirectory = new DirectoryInfo(srcDir);
DirectoryInfo destDirectory = new DirectoryInfo(destDir); if (destDirectory.FullName.StartsWith(srcDirectory.FullName, StringComparison.CurrentCultureIgnoreCase))
{
throw new Exception("cannot copy parent to child directory.");
} if (!srcDirectory.Exists)
{
return;
} if (!destDirectory.Exists)
{
destDirectory.Create();
} FileInfo[] files = srcDirectory.GetFiles(); for (int i = 0; i < files.Length; i++)
{
CopyFile(files[i].FullName, destDirectory.FullName);
} DirectoryInfo[] dirs = srcDirectory.GetDirectories(); for (int j = 0; j < dirs.Length; j++)
{
CopyDirectory(dirs[j].FullName, destDirectory.FullName + @"\" + dirs[j].Name);
}
} private void CopyFile(string srcFile, string destDir)
{
DirectoryInfo destDirectory = new DirectoryInfo(destDir);
string fileName = Path.GetFileName(srcFile);
if (!File.Exists(srcFile))
{
return;
} if (!destDirectory.Exists)
{
destDirectory.Create();
} File.Copy(srcFile, destDirectory.FullName + @"\" + fileName, true); }

C# 实现文件或目录复制到指定目录的更多相关文章

  1. wamp的www目录更改为指定目录

    wamp的www目录更改为指定目录内容简介:主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改manage.ini的278行和manage. ...

  2. c# 检查目录,当指定目录不存在时建立目录

    /// <remark> /// 检查目录,当指定目录不存在时建立目录 /// </remark> public static void CheckFolder(string ...

  3. Jenkins拉取Git远程仓库中指定目录至本地指定目录

    Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...

  4. 不需要写代码,文件夹右键cmd定位指定目录

    引子 这篇文章其实本来不是这样的,因为我用C#的代码实现了一个程序,后面才突然发现,我太傻太天真了,明明不需要写程序和写代码的,结果自己把自己二住了. 我们来看看效果图. 由于,我自己的原因,这个功能 ...

  5. Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte

    File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...

  6. Visual Studio将Delop之后生成的dll或者wsp复制到指定目录

    用VS开发sharepoint项目的时候,有很多个project,每个project都会生成一个wsp包,如果手工把wsp文件找到,复制出来,拷贝到服务器上,再部署,就有点麻烦. 所以写了个批处理命令 ...

  7. Android—将Bitmap图片保存到SD卡目录下或者指定目录

    直接上代码就不废话啦 一:保存到SD卡下 File file = new File(Environment.getExternalStorageDirectory(), System.currentT ...

  8. 利用File类过滤器列出目录下的指定目录或文件

    需求:列出d盘下的全部txt文件 实现方法:利用File类的过滤器功能 package com.test.common.util; import java.io.File; import java.i ...

  9. 利用WGET下载文件,并保存到指定目录

    wget是Linux上一个非常不错的下载指令,也算是Linux工作者常用的指令之一 而这个指令我想在各大系统都预设有提供,包括了Ubuntu.Fedora等,而一般来说,要使用wget下载档案,只需要 ...

随机推荐

  1. Valgrind 安装与使用

    调不尽的内存泄漏,用不完的Valgrind Valgrind 安装 1. 到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz2 2. 解压安装包:tar –jxvf ...

  2. Gradle学习目录总结

    如果是你想干的事情,在别人看起来可能是很难的一件事,不过你自己很喜欢,你不会觉得很苦.我开始创业那会是28岁.对我来讲,我创业的目的不是为了自己当老板,我希望有一个平台有一个环境,我可以控制一些资源, ...

  3. SpringMVC12拦截器

    创建登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...

  4. Linux sed命令在指定行前后添加内容

    一.在匹配行前后加内容在包含www.baidu.com的行前面或后面添加多一行内容www.qq.com#匹配行前加sed -i '/www.baidu.com/i www.qq.com' domain ...

  5. 设置sqlplus的autotrace

    1.cd D:\Oracle11gR2\product\11.2.0\dbhome_1\rdbms\admin; --[ORACLE_HOME]/rdbms/admin 2.sqlplus syste ...

  6. iOS移动端架构的那些事!(转载)

    一个app的初始阶段,必然是先满足各种业务需求.然后,经过多次版本迭代之后,先前的由于急于满足需求而导致的杂乱代码则会充斥整个项目.而此时,项目有了一定的规模,有了一定数量的开发人员,那么为了达到快速 ...

  7. PHP获取当前文件路径信息的方法

    文件名  test.php 1.__FILE__ 获取 “路径 + 文件名” : /var/www/test/test.php  echo __FILE__; //取得当前文件的路径:用魔术常量 __ ...

  8. C#程序中将图片转换为二进制字符串,并将二进制字符串转换为图片

    /// <summary> /// 将图片以二进制流 /// </summary> /// <param name="path"></pa ...

  9. 欧几里德算法gcd及其拓展终极解释

    这个困扰了自己好久,终于找到了解释,还有自己改动了一点点,耐心看完一定能加深理解   扩展欧几里德算法-求解不定方程,线性同余方程. 设过s步后两青蛙相遇,则必满足以下等式: (x+m*s)-(y+n ...

  10. Dapper中使用存储分页。

    #region 分页获取数据 /// <summary> /// 分页获取数据 /// </summary> /// <typeparam name="T&qu ...