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

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

一.复制文件夹原理:

1.递归遍历文件夹

2.复制文件

二.FolderHelper.cs

 1  /// <summary>
 2     /// 文件夹操作类
 3     /// </summary>
 4     public static class FolderHelper
 5     {
 6         /// <summary>
 7         /// 复制文件夹
 8         /// </summary>
 9         /// <param name="sourceFolderName">源文件夹目录</param>
10         /// <param name="destFolderName">目标文件夹目录</param>
11         public static void Copy(string sourceFolderName, string destFolderName)
12         {
13             Copy(sourceFolderName, destFolderName, false);
14         }
15
16         /// <summary>
17         /// 复制文件夹
18         /// </summary>
19         /// <param name="sourceFolderName">源文件夹目录</param>
20         /// <param name="destFolderName">目标文件夹目录</param>
21         /// <param name="overwrite">允许覆盖文件</param>
22         public static void Copy(string sourceFolderName, string destFolderName, bool overwrite)
23         {
24             var sourceFilesPath = Directory.GetFileSystemEntries(sourceFolderName);
25
26             for (int i = 0; i < sourceFilesPath.Length; i++)
27             {
28                 var sourceFilePath = sourceFilesPath[i];
29                 var directoryName = Path.GetDirectoryName(sourceFilePath);
30                 var forlders = directoryName.Split(‘\\‘);
31                 var lastDirectory = forlders[forlders.Length - 1];
32                 var dest = Path.Combine(destFolderName, lastDirectory);
33
34                 if (File.Exists(sourceFilePath))
35                 {
36                     var sourceFileName = Path.GetFileName(sourceFilePath);
37                     if (!Directory.Exists(dest))
38                     {
39                         Directory.CreateDirectory(dest);
40                     }
41                     File.Copy(sourceFilePath, Path.Combine(dest, sourceFileName), overwrite);
42                 }
43                 else
44                 {
45                     Copy(sourceFilePath, dest, overwrite);
46                 }
47             }
48         }
49     }
时间: 2024-10-21 15:50:09

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

封装php redis缓存操作类

封装php redis缓存操作类,集成了连接redis并判断连接是否成功,redis数据库选择,检测redis键是否存在,获取值,写入值,设置生存时间和删除清空操作. php redis类代码: <?php/*** redisdrive.class.php* php redis 操作类**/class redisdrive{ //键名 public $key; //值 public $value; //默认生存时间 public $expire = 86400; /*60*60*24*/ //连

文件上传类,实现文件上传功能

/** *==================================================================  * upload.class.php 文件上传类,实现文件上传功能 * 2013年3月27日0:37:15 *================================================================== */ class Upload{    private $path;   //文件上传目录    privat

JNI文件中命名类与JAVA文件中匹配

jni.c中注册中 int register_android_boa(JNIEnv *env){    jclass clazz;    static const char* const kClassName = "com/lxl/ledClass"; //命名的类 /* look up the class */    clazz = (*env)->FindClass(env,kClassName);  //  clazz = env->FindClass(env,kCl

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

JAVAIO如果按流向分:输入流和输出流两种 输入流的基类:InputStream   Reader 输出流的基类:OutputStream   Writer 如果按数据单元划分:字节流和字符流 字节流输入输出的基类:InputStream  OutputStream 字符流输入输出的基类:Reader   Writer 字节流复制文件内容 public static void main(String[] args) { //字节流复制文件内容 InputStream io=null; Outp

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

using System; using System.IO; using System.Web; namespace SEC { /**//// /// 对文件和文件夹的操作类 /// public class FileControl { public FileControl() { } /**//// /// 在根目录下创建文件夹 /// /// 要创建的文件路径 public void CreateFolder(string FolderPathName) { if(FolderPathNa

FileOperator 文件(夹)操作类

public class FileOperator { /** * 复制文件目录 * @param srcDir 要复制的源目录 eg:/mnt/sdcard/DB * @param destDir 复制到的目标目录 eg:/mnt/sdcard/db/ * @return */ public static boolean copyDir(String srcDir, String destDir){ File sourceDir = new File(srcDir); //判断文件目录是否存在

java文件读写操作类

借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内容进行捕获,放在txt文本文档中 2,对各种类型数据都以字符串的形式逐行写入 3,对全局数组的内容进行写入 读操作: 获取文件行数 对逐行字符串型数据进行类型转换,放入二维数组中 为后面算法处理提供入口,但是要小心的是:不可以将行数用全局变量做计数器,否则每次读入是全局变量累加出错,应重新开始读取

文件内容操作类-RandomAccessFile

package randomaccessfile.cn; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; /*类 RandomAccessFile * File 是对文件的操作,而 RandomAccessFile是对文件内容的操作 * 此类的实例支持对随机访问文件的读取和写入 * 常用的构造方法: * R

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

(13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $path = @$_REQUEST['path'][email protected