zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    SQL Server 2008R2中取得详细日期到毫秒级
    SQL Server Analysis Services无法启动
    SQL Server 2008R2编写脚本时智能提示功能丢失的处理
    SQL Server使用Linkserver连接Oracle
    好用的eclipse快捷键
    今天项目出现的问题总结
    8.2微信小页面问题总结
    SpringBoot整合rabbitmq
    初学Netty(杰哥好久不见)
    消息队列RabbitMQ学习
  • 原文地址:https://www.cnblogs.com/zlp520/p/6289974.html
Copyright © 2011-2022 走看看