小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 经验技巧
  4. 正文

net中c#教程 如何复制整个文件夹?原来这么简单

2022年11月21日 291点热度 1人点赞 0条评论

最近有网友留言,问了一个问题,如何把一个文件夹里的所有内容复制至另一个文件夹?想了1秒回复:直接Ctrl+C和Ctrl+V不就行了?然后就没有下文了。现在想来,他的意思是问怎么用代码实现的?抱歉了,现在才想到,代码实现也不难,都在下面了

整个文件夹复制

 

目录

  • 1、实现的代码
  • 2、代码调用示例
  • 3、2个知识点

1、实现的代码

private void CopyFolder(string sourceFolder, string targetFolder)
{
    //1,判断文件夹最末的字符是不是\
    if (targetFolder[targetFolder.Length - 1] != System.IO.Path.DirectorySeparatorChar)
    {
        targetFolder += System.IO.Path.DirectorySeparatorChar;
    }

    //2,判断目标文件夹是否存在?不存在就创建
    if (!System.IO.Directory.Exists(targetFolder))
    {
        System.IO.Directory.CreateDirectory(targetFolder);
    }

    //3,同时获取源文件的文件和子文件夹
    string[] fileList = System.IO.Directory.GetFileSystemEntries(sourceFolder);

    //4,遍历所有的文件和目录
    foreach (string file in fileList)
    {
        //4.1,先判断是否是文件夹。若是就递归Copy下面的文件
        if (System.IO.Directory.Exists(file))
        {
            this.CopyFolder(file, targetFolder + System.IO.Path.GetFileName(file));
        }
        else
        {
            //4.1,若不是则直接Copy文件

            //a,直接复制复制
            //System.IO.File.Copy(file, targetFolder + System.IO.Path.GetFileName(file), true);

            //b,创建一个同名的txt空文件
            string targetFile = targetFolder + Path.GetFileNameWithoutExtension(file) + ".txt";
            FileHelper.WriteFileToText(targetFile, "", Encoding.UTF8, false);
        }
    }
}

 

2、代码调用示例

sourceFolder = @"e:\entertain2";
targetFolder = @"e:\entertain2\";
this.CopyFolder(sourceFolder, targetFolder);

 

3、2个知识点

1、递归复制
2、Directory.GetFileSystemEntries,这个方法可以同时获得文件和子文件夹

 

相关阅读

net中c#教程 不同格式的csv文件如何导入?

net中c#教程 如何递归获取文件夹所有文件?

net中c#教程 file文件的常用操作

标签: c#教程 net教程 复制文件夹
最后更新:2022年11月21日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2