c#  封装的文件夹操作类之复制文件夹

一.复制文件夹原理:

1.递归遍历文件夹

2.复制文件

二.FolderHelper.cs

  /// <summary>
/// 文件夹操作类
/// </summary>
public static class FolderHelper
{
/// <summary>
/// 复制文件夹
/// </summary>
/// <param name="sourceFolderName">源文件夹目录</param>
/// <param name="destFolderName">目标文件夹目录</param>
public static void Copy(string sourceFolderName, string destFolderName)
{
Copy(sourceFolderName, destFolderName, false);
} /// <summary>
/// 复制文件夹
/// </summary>
/// <param name="sourceFolderName">源文件夹目录</param>
/// <param name="destFolderName">目标文件夹目录</param>
/// <param name="overwrite">允许覆盖文件</param>
public static void Copy(string sourceFolderName, string destFolderName, bool overwrite)
{
var sourceFilesPath = Directory.GetFileSystemEntries(sourceFolderName); for (int i = ; i < sourceFilesPath.Length; i++)
{
var sourceFilePath = sourceFilesPath[i];
var directoryName = Path.GetDirectoryName(sourceFilePath);
var forlders = directoryName.Split('\\');
var lastDirectory = forlders[forlders.Length - ];
var dest = Path.Combine(destFolderName, lastDirectory); if (File.Exists(sourceFilePath))
{
var sourceFileName = Path.GetFileName(sourceFilePath);
if (!Directory.Exists(dest))
{
Directory.CreateDirectory(dest);
}
File.Copy(sourceFilePath, Path.Combine(dest, sourceFileName), overwrite);
}
else
{
Copy(sourceFilePath, dest, overwrite);
}
}
}
}

c# 封装的文件夹操作类之复制文件夹的更多相关文章

  1. 封装php redis缓存操作类

    封装php redis缓存操作类,集成了连接redis并判断连接是否成功,redis数据库选择,检测redis键是否存在,获取值,写入值,设置生存时间和删除清空操作. php redis类代码: &l ...

  2. Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹

    (13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...

  3. 用winscp从本地上传文件到服务器上出现复制文件到远端时错误。

    用winscp从本地上传文件到服务器上出现复制文件到远端时错误. 错误码:4 服务器返回的错误消息:write failed 报错如下图所示: 分析过程: 1.刚开始以为是权限不够,后面上网查了一下是 ...

  4. IO流,字节流复制文件,字符流+缓冲复制文件

    JAVAIO如果按流向分:输入流和输出流两种 输入流的基类:InputStream   Reader 输出流的基类:OutputStream   Writer 如果按数据单元划分:字节流和字符流 字节 ...

  5. [No0000DC]C# FileHelper 本地文件、文件夹操作类封装FileHelper

    using System; using System.Diagnostics; using System.IO; using System.Text; using Shared; namespace ...

  6. [IO] C# DirFileHelper文件与文件夹操作类教程与源码下载 (转载)

    点击下载 DirFileHelper.zip 主要功能如下所示 // 摘要: // 向文本文件的尾部追加内容 // // 参数: // filePath: // 文件的绝对路径 // // conte ...

  7. Asp.net对文件夹和文件的操作类

    using System; using System.IO; using System.Web; namespace SEC { /**//// /// 对文件和文件夹的操作类 /// public ...

  8. FileOperator 文件(夹)操作类

    public class FileOperator { /** * 复制文件目录 * @param srcDir 要复制的源目录 eg:/mnt/sdcard/DB * @param destDir ...

  9. C#封装的VSTO Excel操作类

    自己在用的Excel操作类,因为经常在工作中要操作Excel文件,可是使用vba实现起来实在是不方便,而且编写也很困难,拼接一个字符串都看的眼花. 这个时候C#出现了,发现使用C#来操作Excel非常 ...

随机推荐

  1. 在调试安卓系统的时候需要这个 ”adb disable-verity“

    在调试设备的时候.想要对文件进行读写 于是使用adb remount 出现提示. 请使用 ”adb  disable-verity“ 于是使用adb  disable-verity 的命令. 得到如下 ...

  2. 静默方式安装window oracle

    1. setup.exe -silent -responseFile "C:\app\software\WIN64_11204\RSP\db_install_window.rsp" ...

  3. OpenGL--------纹理处理

    我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求.例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是不够的.OpenGL纹理映射功能支持 ...

  4. linux的学习系列 7---管道和过滤器

    有时候,我们可以把两个命令连起来使用,一个命令的输出作为另一个命令的输入,这就叫做管道.为了建立管道,需要在两个命令之间使用竖线(|)连接. 管道是Linux进程之间一种重要的通信机制:除了管道,还有 ...

  5. HDU 2579/BFS/ Dating with girls(2)

    题目链接 /* 题意是是传统的迷宫加上一个条件,墙壁在k的整倍数时刻会消失,那么求到达出口的最短时间. 关键点在于某个点最多被走k次,标记vis[x][y][time%k]即可. */ #includ ...

  6. CI 框架 hooks 的调用方法

    流程:在hooks中写一个类 ,  在system/core/CodeIgniter.php  判断什么时候执行    hooks中的类      涉及到了php反射获取类  方法   方法中的注释 ...

  7. 快学Scala-第八章 继承

    知识点: 1.扩展类 extends关键字,在定义中给出子类需要而超类没有的字段和方法,或者重写超类的方法. 2.重写方法 在Scala中重写一个非抽象方法必须 override 修饰符 public ...

  8. Viewpager实现图片轮播

    //-------------主布局文件------------------------------------- <LinearLayout xmlns:android="http: ...

  9. 简单时钟——css3

    这里我们使用css3的特性制作一个简易的时钟,代码如下: <!DOCTYPE html><html> <head> <meta charset="U ...

  10. HDU 1681 Frobenius(完全背包+标记装满)

    一个完全背包,数组两百万,暴力可过 #include<iostream> #include<cstdio> #include<cstring> using name ...