`
LiuXiaoYong
  • 浏览: 31762 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

C#复制文件夹,删除文件夹的方法

    博客分类:
  • .NET
阅读更多
C#复制文件的时候只提供了复制文件的类,没有复制文件夹。
删除文件夹的时候,文件夹下面有文件的时候是不能删除的,需要先删除文件夹下面所有文件才能删除文件夹。

在网上找了很多资料,在这里记录一下这两个方法:

复制文件夹:
/// <summary>
/// 复制文件夹
/// </summary>
/// <param name="sourceFolder">待复制的文件夹</param>
/// <param name="destFolder">复制到的文件夹</param>
        private void CopyFolder(string sourceFolder, string destFolder)
        {
            if (!Directory.Exists(destFolder))
            {
                Directory.CreateDirectory(destFolder);
            }
            string[] files = Directory.GetFiles(sourceFolder);
            foreach (string file in files)
            {
                string name = Path.GetFileName(file);

                string dest = Path.Combine(destFolder, name);

                File.Copy(file, dest);
            }
            string[] folders = Directory.GetDirectories(sourceFolder);
            foreach (string folder in folders)
            {
                string name = Path.GetFileName(folder);

                string dest = Path.Combine(destFolder, name);

                CopyFolder(folder, dest);
            }
        }



删除文件夹:
/// <summary>   
/// C# 删除文件夹      
/// </summary>   
/// <param name="dir">删除的文件夹,全路径格式</param>   
        private void DeleteFolder(string dir)
        {
            // 循环文件夹里面的内容   
            foreach (string f in Directory.GetFileSystemEntries(dir))
            {
                // 如果是文件存在   
                if (File.Exists(f))
                {
                    FileInfo fi = new FileInfo(f);
                    if (fi.Attributes.ToString().IndexOf("Readonly") != 1)
                    {
                        fi.Attributes = FileAttributes.Normal;
                    }
                    // 直接删除其中的文件   
                    File.Delete(f);
                }
                else
                {
                    // 如果是文件夹存在   
                    // 递归删除子文件夹   
                    DeleteFolder(f);
                }
            }
            // 删除已空文件夹   
            Directory.Delete(dir);
        }
分享到:
评论

相关推荐

    C#复制文件夹(及文件夹下所有子文件夹和文件)

    在C#开发中,经常会遇到需要复制文件夹及其内部所有子文件夹和文件的需求。这种需求常见于备份系统、文件同步服务或者数据迁移工具等场景。本文将详细介绍如何使用C#来实现文件夹及其子文件夹和文件的完整复制,并...

    C# 复制文件夹到目标位置

    在C#编程中,复制文件夹到目标位置是一项常见的任务,尤其在系统迁移、备份或者部署应用程序时。本文将深入探讨如何使用C#实现这一功能,以及涉及的相关知识点。 首先,我们要了解C#中处理文件和目录的基本类,如`...

    winform 文件操作 WM6.0 c# 遍历文件夹、复制文件、删除文件、复制文件内容

    本教程将详细介绍如何在这样的环境下遍历文件夹、复制文件、删除文件以及复制文件内容。 一、遍历文件夹 在C#中,我们可以使用`System.IO`命名空间下的`DirectoryInfo`类来遍历文件夹。以下是一个简单的示例: ``...

    C# 复制文件夹内容

    在C#编程中,复制文件夹内容是一项常见的任务,尤其在软件开发、数据迁移或备份操作中。本示例将详细讲解如何使用C#来实现这个功能,包括递归复制多层文件夹及其内容。 首先,我们需要理解C#中处理文件和文件夹的...

    c#文件,文件夹基本操作

    在C#编程中,文件和文件夹...在实际开发中,根据具体需求,还可以结合其他类和方法进行更复杂的功能实现,如文件复制、文件属性的获取与设置等。通过不断的实践和学习,你可以熟练掌握C#在文件和文件夹操作方面的技能。

    C#判断一个文件夹内是否存在子文件夹或文件

    最后,`CopyAndDelDirectory`方法结合了目录拷贝和删除的功能,先复制后删除源文件夹。 ```csharp public static void CopyAndDelDirectory(string oldDirectory, string newDirectory) { CopyDirectory(old...

    递归删除,复制文件夹

    在文件系统操作中,如删除文件夹或复制文件夹,递归尤其有用,因为文件夹通常包含其他文件和子文件夹,它们也可能含有更多的文件和子文件夹,形成一个嵌套结构。本篇文章将深入探讨递归在删除和复制文件夹中的应用。...

    C# 文件夹的拷贝与删除案例源码

    2. **文件夹删除**: 删除文件夹则相对简单,`System.IO.Directory`类的`Delete`方法即可完成。但需要注意的是,如果文件夹非空,需要设置`recursive`参数为`true`以删除整个目录及其内容: ```csharp using ...

    C#实现复制文件夹中文件到另一个文件夹的方法

    本文实例讲述了C#实现复制文件夹中文件到另一个文件夹的方法。分享给大家供大家参考。具体如下: private void CopyDir(string srcPath, string aimPath) {  try  {  // 检查目标目录是否以目录分割字符结束如果...

    C#文件夹的移动

    关于“深度复制”的概念,当移动文件夹时,C#实际上会递归地复制文件夹及其所有子文件和子文件夹到新位置,然后在原始位置删除源文件夹。这个过程确保了目标位置的文件夹结构与源文件夹完全相同,包括所有内部的文件...

    C#写文件夹自动复制

    这两个类都允许你设定间隔时间,当时间到时触发一个事件,从而执行复制文件夹的操作。 3. 计划任务:为了使程序能在特定时间自动运行,可以将其添加到Windows的任务计划程序中。C#可以调用TaskScheduler库(如...

    C#判断文件是否存在并创建和删除文件夹

    在C#编程中,操作文件和目录是常见的任务,包括检查文件或文件夹是否存在、创建新的文件夹以及删除已存在的文件夹。以下是对这些操作的详细说明: 首先,要判断一个文件是否存在,可以使用`System.IO.File`类的`...

    C# 文件工具类 文件读写 复制 删除 创建文件夹

    C# 文件工具类 实际项目使用 久经考验 文件读写 复制 删除 创建文件夹 判断文件扩展名等等

    C#文件夹复制

    "C#文件夹复制"这个主题涉及到如何利用C#语言的System.IO命名空间中的类和方法来实现一个文件夹及其子文件夹的递归复制功能。下面将详细解释这一过程以及涉及的关键知识点。 首先,`Directory`类是C#中处理目录的...

    PB使用SHFileOperation函数复制文件夹(文件)API

    ### PB使用SHFileOperation函数复制文件夹(文件)API #### 概述 在PowerBuilder (PB) 开发过程中,经常需要实现文件或文件夹的复制功能。利用Windows API中的`SHFileOperation`函数可以非常方便地实现这一需求。...

    C#实现文件夹的复制和删除

    今天,我们将详细介绍C#实现文件夹的复制和删除功能,包括复制文件夹的所有内容到另一个文件夹内和删除文件夹的实现方法。 一、复制文件夹 复制文件夹是将源文件夹的所有内容复制到目标文件夹内的过程。这个过程...

    C#拷贝整个文件夹及子目录和其中文件的方法

    这些类提供了创建、删除和拷贝文件和文件夹的方法。在拷贝文件夹时,我们需要注意以下几点: 1. 确定源文件夹路径和目标文件夹路径。 2. 检查目标路径是否存在,如果不存在,则创建它。 3. 递归遍历源文件夹的所有...

    C# 添加,修改,删除 文件夹 文件 大全

    以下是一个复制文件夹的示例方法: ```csharp public static void CopyDirectory(string sourcePath, string destinationPath) { // 检查目标目录是否以目录分割字符结束 if (!destinationPath.EndsWith("\\", ...

    C#写的文件夹备份

    5. **复制文件夹结构**:若要保持源文件夹的目录结构,需要在目标位置创建相应的子目录。 6. **处理异常**:在复制过程中,应捕获并处理可能出现的异常,如文件正在被使用、磁盘空间不足等。 7. **日志记录**:...

    C# 文件夹操作

    - 对于耗时的文件夹操作,如复制或删除大量文件,可以使用异步版本的方法,如 `Directory.DeleteAsync()` 和 `Directory.CreateDirectoryAsync()`。 10. **异常处理**: - 文件夹操作可能会抛出异常,如 `...

Global site tag (gtag.js) - Google Analytics