C#中复制文件夹及文件的两种方法

这篇具有很好参考价值的文章主要介绍了C#中复制文件夹及文件的两种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现将文件复制的问题整理的知识做了一下总结,以方便自己和大家学习!本节要说的是C#中复制文件夹及文件的两种方法,闲话不说,直接附代码如下:

方法一:

c# 复制文件夹,c#,java,开发语言

 1        /// <summary>
 2         /// 复制文件夹及文件
 3       /// </summary>
 4         /// <param name="sourceFolder">原文件路径</param>
 5         /// <param name="destFolder">目标文件路径</param>
 6         /// <returns></returns>
 7         public int CopyFolder(string sourceFolder, string destFolder)
 8         {
 9             try
10             {
11                 //如果目标路径不存在,则创建目标路径
12                 if (!System.IO.Directory.Exists(destFolder))
13                 {
14                     System.IO.Directory.CreateDirectory(destFolder);
15                 }
16                 //得到原文件根目录下的所有文件
17                 string[] files = System.IO.Directory.GetFiles(sourceFolder);
18                 foreach (string file in files)
19                 {
20                     string name = System.IO.Path.GetFileName(file);
21                     string dest = System.IO.Path.Combine(destFolder, name);
22                     System.IO.File.Copy(file, dest);//复制文件
23                 }
24                 //得到原文件根目录下的所有文件夹
25                 string[] folders = System.IO.Directory.GetDirectories(sourceFolder);
26                 foreach (string folder in folders)
27                 {
28                     string name = System.IO.Path.GetFileName(folder);
29                     string dest = System.IO.Path.Combine(destFolder, name);
30                     CopyFolder(folder, dest);//构建目标路径,递归复制文件
31                 }                
32                 return 1;
33             }
34             catch (Exception e)
35             {
36                 MessageBox.Show(e.Message);
37                 return 0;
38             }
39         
40         }

c# 复制文件夹,c#,java,开发语言

方法二:

c# 复制文件夹,c#,java,开发语言

 1        /// <summary>
 2         /// 复制文件夹及文件
 3       /// </summary>
 4         /// <param name="sourceFolder">原文件路径</param>
 5         /// <param name="destFolder">目标文件路径</param>
 6         /// <returns></returns>
 7         public int CopyFolder2(string sourceFolder, string destFolder)
 8         {
 9             try
10             {
11                 string folderName = System.IO.Path.GetFileName(sourceFolder);
12                 string destfolderdir = System.IO.Path.Combine(destFolder,folderName);                
13                 string[] filenames = System.IO.Directory.GetFileSystemEntries(sourceFolder);
14                 foreach (string file in filenames)// 遍历所有的文件和目录
15                 {
16                     if (System.IO.Directory.Exists(file))
17                     {
18                         string currentdir = System.IO.Path.Combine(destfolderdir, System.IO.Path.GetFileName(file));
19                         if (!System.IO.Directory.Exists(currentdir))
20                         {
21                             System.IO.Directory.CreateDirectory(currentdir);
22                         }
23                         CopyFolder2(file, destfolderdir);
24                     }
25                     else
26                     {                        
27                         string srcfileName =System.IO.Path.Combine(destfolderdir,System.IO.Path.GetFileName(file));
28                         if (!System.IO.Directory.Exists(destfolderdir))
29                         {
30                             System.IO.Directory.CreateDirectory(destfolderdir);
31                         }
32                         System.IO.File.Copy(file, srcfileName);
33                     }
34                 }
35 
36                 return 1;
37             }
38             catch (Exception e)
39             {
40 
41                 MessageBox.Show(e.Message);
42                 return 0;
43             }
44         
45         }

c# 复制文件夹,c#,java,开发语言

      方法一 和 方法二 都可以实现文件夹及文件的复制,两者的区别是:方法一的复制并没有包括原文件的根目录名称(要复制的文件除了根目录文件夹以外其他的都原封不动地搬到了目的地),方法二的复制包括了原文件的根目录名称(要复制的文件原封不动的搬到目的地),比如:要把E:/123的文件复制到F盘(123文件夹下包含其他文件夹及文件,比如包含了234文件夹和一个1.txt文档),如果用方法一,只是把E盘123文件夹下的子文件夹及子文件复制到了F盘,如果用方法二,则是把E盘下的整个123文件夹都复制到了F盘!由此可见,方法一 适合重命名复制,方法二 适合直接复制!
      这里需要说明一下,方法一的第22行和方法二的第32行,第二个参数指的是目标文件的全名称,必须包括文件的名称,不能只是路径!文章来源地址https://www.toymoban.com/news/detail-602760.html

到了这里,关于C#中复制文件夹及文件的两种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c# 文件夹选择 , 文件选择

    c# 文件夹选择 , 文件选择 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace Test07 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, Eve

    2024年02月13日
    浏览(44)
  • C#怎么删除指定文件或文件夹

    本文主要介绍了C#如何删除指定文件或文件夹,具有很好的参考价值,希望对大家有所帮助。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public static string deleteOneFile( string fileFullPath)          {              // 1、首先判断文件或者文件路径是否存在              i

    2024年02月13日
    浏览(49)
  • C#实时监测文件夹变化

    在开发各种应用程序时,我们经常需要对文件系统中的文件或文件夹进行实时监测,以便在文件内容改变、文件被创建或删除时能够及时做出反应。在 C# 中,System.IO.FileSystemWatcher 类为我们提供了这样一个强大的功能。 一、引入 FileSystemWatcher 类 首先,在项目中引入 System.IO

    2024年03月15日
    浏览(59)
  • C#怎样创建、移动及遍历文件夹

    一、使用DirectoryInfo类创建文件夹: 1、使用DirectoryInfo前需要引入命名空间: 2、DirectoryInfo类没有静态方法,仅可以用于实例化的对象,  3、判断输入的文件夹名称是否为空,弹出提示框 4、 通过Exists()方法判断要创建的文件夹是否存在 5、创建文件夹:  二、使用DirectoryI

    2024年02月12日
    浏览(41)
  • 【C#】在Windows资源管理器打开文件夹,并选中指定的文件或文件夹

    因软件里使用了第三方插件,第三方插件的日志文件夹存在路径不止一个,并且可能层级较深。 为便于运维人员和最终用户使用,在界面上增加一个“打开XX文件夹”的按钮,点击时,打开第三方插件日志文件夹所在的上级文件夹,并选中其下级指定名称的若干个文件和文件

    2024年02月14日
    浏览(63)
  • 使用C#如何监控选定文件夹中文件的变动情况?

    1、前言 2、效果 3、具体实现 ​ 页面设计 ​ 全部代码 ​ FileSystemWatcher的介绍 ​ FileSystemWatcher的构造函数 ​ FileSystemWatcher的属性 ​ FileSystemWatcher的事件 4、总结 有时候我们会有监控电脑上某一个文件夹中文件变动情况的需求,在本文中,我也会以一个具体的例子,说明在

    2024年02月04日
    浏览(52)
  • c# 释放所有嵌入资源, 到某个本地文件夹

    .net 8

    2024年01月20日
    浏览(81)
  • Unity C# 打开windows对话框选择文件夹或选择文件

    unity没有提供打开windows对话框的api,在开发种也会遇到选择系统文件夹或选择系统文件的需求

    2024年04月26日
    浏览(50)
  • C#使用FileInfo和DirectoryInfo类来执行文件和文件夹操作

    System.IO.FileInfo 和 System.IO.DirectoryInfo 是C#中用于操作文件和文件夹的类,它们提供了许多有用的方法和属性来管理文件和文件夹。 System.IO.FileInfo : FileInfo 类用于操作单个文件的信息和内容 。以下是一些常用的方法和属性: Exists :检查文件是否存在。 FullName :获取文件的完

    2024年02月12日
    浏览(49)
  • C# Blazor 学习笔记(5):blazor文件夹组件引入

    为了更好的组件化管理整个文件,我选择使用分文件夹对项目组件进行分类。 Shared:Layout布局空间放置地方,由于默认创建,动也不好动,我就不动这个名称了,原本想改成Layout的 Pages:业务页面 Components:自定义组件文件 我创建了B_Col和B_Row两个组件。因为我怕我的命名和

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包