.NET Core中复制源文件夹下的所有内容到新文件夹

.NET Core中没有原生的复制文件夹方法,我们可以自己写个:

新建一个.NET Core控制台项目,示例代码如下:

using System;
using System.IO;

namespace CoreIO
{
    class Program
    {
        /// <summary>
        /// 复制源文件夹下的所有内容到新文件夹
        /// </summary>
        /// <param name="sources">源文件夹路径</param>
        /// <param name="dest">新文件夹路径</param>
        static void CopyFolder(string sources, string dest)
        {
            DirectoryInfo dinfo = new DirectoryInfo(sources);
            //注,这里面传的是路径,并不是文件,所以不能包含带后缀的文件
            foreach (FileSystemInfo f in dinfo.GetFileSystemInfos())
            {
                //目标路径destName = 新文件夹路径 + 源文件夹下的子文件(或文件夹)名字
                //Path.Combine(string a ,string b) 为合并两个字符串
                string destName = Path.Combine(dest, f.Name);
                if (f is FileInfo)
                {
                    //如果是文件就复制
                    File.Copy(f.FullName, destName, true);//true代表可以覆盖同名文件
                }
                else
                {
                    //如果是文件夹就创建文件夹,然后递归复制
                    Directory.CreateDirectory(destName);
                    CopyFolder(f.FullName, destName);
                }
            }
        }

        static void Main(string[] args)
        {
            string sourceFolder = @"F:\xBackup";
            string destFolder = @"F:\DemoFolder";

            CopyFolder(sourceFolder, destFolder);

            Console.WriteLine("Press any key to end...");
            Console.ReadKey();
        }
    }
}

原文地址:https://www.cnblogs.com/OpenCoder/p/10657147.html

时间: 2024-11-04 21:17:01

.NET Core中复制源文件夹下的所有内容到新文件夹的相关文章

matlab遍历文件夹下所有图片和遍历所有子文件夹下图片

做图像处理实验,经常需要遍历当前文件下所有图片.matlab当然很早就考虑了这个问题,库函数dir就是完成这个工作的.函数返回的是一个存放所有目录下文件信息的结构体,通过遍历结构体就可以达到访问所有文件的目的了.具体实现见下面程序: imgPath = 'E:/imageData/'; % 图像库路径imgDir = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件for i = 1:length(imgDir) % 遍历结构体就可以一一处理图片了 img = imre

linux过滤旧文件中的空行和注释行剩余内容组成新文件

一.说明 在某些场景下我们想要将旧文件中空行和注释行过滤掉,将产生实际效果的行保留. 比如redis提供的配置示例文件中有很多用于说明的空行和注释行,我们想把产生实际效果的配置行筛选出来组成新的简洁的配置文件. 二.命令 grep -Ev "^$|#" old_file_name > new_file_name grep--过滤命令 -E--使用正则表达示进行匹配 -v--剔除匹配的项(默认是筛选匹配的项) ^--开头匹配 $--代表空行 |--正则中的或运算 #--#开头行 o

CoreJava_线程并发(阻塞队列):在某个文件夹下搜索含有某关键字的文件

Java多线程编程是非常考验一个程序员水平的.传统的WEB程序中,因为框架提供了太多的健壮性.并发性.可靠性的支持,所以我们都是将所有的注意力放到了业务实现上.我们只是按照业务逻辑的要求,不停的积累自己的代码.因为知识,或者是经验的限制,经常出现了问题而不自知.例如,某些比较原始的项目中,并没有使用Spring等相对来说比较灵活健壮的框架.而是仅仅使用Servlet来作为服务端的实现方式. 举一个简单的栗子,众所周知,当请求到了容器,容器是创建并且启动了一个Servlet线程来对当前的请求作出相

eclipse下建立 android 项目,相关文件夹介绍

今天开始进入ANDROID开发,之前一直做些JAVA的WEBSERVICE之类的文件,第一次从头开始整理ANDROID项目,我会把最近遇到的问题做一一梳理. 现在来说一下建立ANDROID项目后产生的各个文件夹的作用.当我们建立一个基本的ANDROID环境时候,将自动出现如下文件夹. 1.src文件夹:2.gen文件夹:3.Android 2.1文件夹:4.assets:5.res文件夹:6.AndroidManifest.xml  1.SRC文件夹(存放源代码): 顾名思义(src, sour

centos下cp -r 命令可拷贝文件夹

LINUX命令的cp -r 和-R的区别 功能上是等价的.不加-r或者-R的时候,只拷贝文件,不拷贝文件夹:加上后则会拷贝文件夹——包括下一级的子文件夹,以及子文件夹中的子文件夹,余此类推.rm的-R -r功能同上ls的-R功能同上,-r的功能是结果反向排列

linux下的c语言编程删除文件夹

刚刚在学习开始做新项目的时候,学长布置了一项任务,就是在给定一个目录下,要将这个目录下一个星期之前的目录包括里面的文件全部删除,只保留这一个星期内的.百度了好久的资料,终于完成,记录一下防止忘记.(注:文件夹名称默认为日期格式,如20140716) #include<dirent.h> #include<sys/types.h> #include<string.h> #include<stdlib.h> #include<unistd.h> #i

nodejs 文件系统(fs) 删除文件夹 及 子文件夹下的所有内容

http://blog.163.com/hule_sky/blog/static/2091622452015112821829773/ node 文件系统fs 为我们提供了一些方法 进行文件和文件夹的读写删除等操作 下边将介绍删除文件夹及子文件夹下的所有内容的相关命令(均含有同步和异步方法) 1. fs.stat && fs.statSync 提供了访问文件的属性信息 2. fs.readdir && fs.readdirSync 提供读取文件目录信息 3. fs.unli

模拟test文件下的201712{01..31}/pdf这些文件夹下都有100个pdf文件

1.模拟test文件下的201712{01..31}/pdf这些文件夹下都有100个pdf文件注意灰色部分有反引号[[email protected] ~]# cat b.sh#!/bin/bashcd /root/test && mkdir -p 201712{01..31}/pdfWJ=find /root/moban -type ffor f in find /root/test/201712{01..31}/pdf -type ddocp $WJ $f &>/dev/

C#控制台基础 directory创建一个新文件夹

1 代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace directory创建一个文件夹 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14