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     }
  • 相关阅读:
    Codeforces Round #362 (Div. 2) C
    poj1655 树重心
    poj1985 树直径
    Codeforces Round #403 (based on Technocup 2017 Finals)
    uva 10054 The necklacr
    bfs codeforces 754B Ilya and tic-tac-toe game
    矩阵快速幂专题
    CodeForces 863E Turn Off The TV 思维,扫描线
    CodeForces 803F Coprime Subsequences 莫比乌斯,容斥
    CodeForces 803C Maximal GCD 思维
  • 原文地址:https://www.cnblogs.com/zlp520/p/6289974.html
Copyright © 2011-2022 走看看