首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何删除所有文件/文件夹,但在C#中保留根文件夹

在C#中,可以使用递归方法删除指定根文件夹下的所有文件和文件夹,但保留根文件夹本身。

以下是一个示例代码:

代码语言:txt
复制
using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string rootFolderPath = "C:\\path\\to\\root\\folder";
        
        // 调用方法删除指定根文件夹下的所有文件和文件夹
        DeleteFilesAndFolders(rootFolderPath);
        
        Console.WriteLine("删除完成。");
    }
    
    public static void DeleteFilesAndFolders(string folderPath)
    {
        // 删除文件
        foreach (string filePath in Directory.GetFiles(folderPath))
        {
            File.Delete(filePath);
        }
        
        // 递归删除子文件夹
        foreach (string subFolderPath in Directory.GetDirectories(folderPath))
        {
            DeleteFilesAndFolders(subFolderPath);
        }
    }
}

该代码首先指定根文件夹的路径rootFolderPath,然后调用名为DeleteFilesAndFolders的递归方法来删除该根文件夹下的所有文件和文件夹。递归方法首先使用Directory.GetFiles方法获取根文件夹中的所有文件路径,并使用File.Delete方法逐个删除文件。然后使用Directory.GetDirectories方法获取根文件夹中的所有子文件夹路径,并逐个递归调用DeleteFilesAndFolders方法删除子文件夹中的文件和文件夹。

请注意,此代码仅删除指定根文件夹下的内容,但保留根文件夹本身。如果需要删除根文件夹本身,请在删除文件和文件夹后添加以下代码:

代码语言:txt
复制
Directory.Delete(folderPath);

这将删除根文件夹及其内容。请谨慎使用,确保您的操作不会导致意外删除重要数据。

此外,作为一个云计算领域的专家,您可能对以下腾讯云产品和服务感兴趣:

  1. 对象存储:腾讯云 COS(对象存储),可用于存储大规模的非结构化数据,如图片、音视频文件等。了解更多:腾讯云 COS
  2. 云服务器:腾讯云 CVM(云服务器),提供弹性计算能力,可在云中快速创建和部署虚拟服务器。了解更多:腾讯云 CVM
  3. 云数据库:腾讯云数据库 MySQL,可提供高性能、可扩展的关系型数据库服务。了解更多:腾讯云数据库 MySQL
  4. 人工智能:腾讯云人工智能平台 AI Lab,提供图像识别、语音合成、自然语言处理等人工智能能力。了解更多:腾讯云人工智能 AI Lab

请注意,此回答仅供参考,并且腾讯云产品和服务仅作为示例提供,不代表推荐或支持。您可以根据自己的需求选择适合的云计算品牌商和产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Stata | 删除文件夹所有文件

前言 在数据整理过程中,有时会生成一些临时的文件,数据整理完之后往往需要将其删除。本文就介绍下如何用 Stata 删除路径下的所有文件。...实现过程 生成演示文件 演示需要,先生成 temp_file 文件夹,其中存放待删除文件。...\tempFileTree) d(tree) 运行上段代码,得到 tempfile 文件夹,目录结构如下: 卷 OS 的文件夹 PATH 列表 卷序列号为 D048-2ACC C:. │ test1...但是这种方式只能删除文件,如果文件夹中包含子文件夹,就需要在子文件夹中再执行一次删除,当然也可以通过在外层嵌套一层循环实现。.../Q 安静模式,带 /S 删除目录树时不要求确认 所以,上段代码中 /s 选项表示删除所有文件夹和其中的文件,/q 选项安静模式,即删除的时候不询问是否确认删除

4.8K10
  • 删除指定文件夹及其子文件夹中的所有文件,但保留文件夹

    excelperfect 标签:VBA 经常要整理电脑中的文件,特别是每当要自查电脑文件时。每次都是将一个一个文件夹打开,将其中的文件全部删除,但要保留文件夹,以便于后面再陆续存放新的文件。...手动操作起来每繁琐,特别是当文件夹及其子文件夹很多且里面的文件也较多时。 其实,这样的工作使用VBA来很好解决。...下面的程序会删除指定文件夹中的所有文件,包括其子文件夹中的文件,但会保留文件夹,即保留文件夹框架,以便再往里面存放新文件。...Sub KillFiles(strPath As String, Optional blnRecursive As Boolean) ' 本过程返回目录中的所有文件到Dictionary对象中....' 如果递归调用则同时返回子文件夹中的所有文件.

    33810

    定期删除文件夹中的文件——C#

    下面是自定义的一个函数,参数分别为:文件夹名称、文件后缀、保存天数 逻辑是获取当前系统的时间,和文件创建时间去作差,如果结果大于保存天数,就删除它 /// .../// 定期清除文件 /// /// 文件夹 /// <param...} } } 调用如下: 我把文件夹路径存到ini文件中,首先读出路径 同样把保存天数存到ini文件中(存的是控件ridiobutton...的索引值,具体操作点击这里),然后读出索引值再使用switch来解析索引值对应的天数 最后调用删除文件的函数,这里删除的是excel表格,注意格式为" *.xls ",*不能省略 ?...pathLast = @"\" + day + ".xls"; //文件名 pathHeard = Ini.IniReadValue("配置文件", "path"); //文件夹

    2.2K41

    linux下如何删除文件夹

    直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r 就是向下递归,不管有多少级目录,一并删除; -f 就是直接强行删除,不作任何提示的意思。...例如:删除文件夹实例: rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件文件夹 (这里可能出现个问题,如果直接如此使用的话...这时需要在 rm -rf 前补充 sudo 作为授权操作的许可,即:sudo rm -rf 文件夹的名字) 例如:删除文件实例: rm -f /var/log/httpd/access.log 将会强制删除.../var/log/httpd/access.log这个文件 需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的。...还有一种方法也挺好用: mkdir a  创建目录a rmdir a  删除目录a  注意:rmdir只能删除空目录,如果目录里面有文件,那么删除失败

    11K10

    GitHub上如何创建删除文件夹

    文件名后面加上"/"这个斜杠回车再输入一个文件名,在里面随便写点东西(因为Github不允许空文件夹存在,空文件夹自动删除),提交接即可。...方法二 :创建文件夹上传 直接在本地创建一个文件夹文件夹里面随意放一些文件(必须有东西),点击Upload files上传即可。 ?...删除文件夹 删除文件夹非常简单,删除或者移动里面文件即可,空文件夹Github自动删除。 ?...需要保持被操作Github项目已在本地下拉并为最新版本): git rm -r --cached flashview //--cached不会把本地的flashview文件夹删除...//若需要对其他分支进行操作,则把master换为对应分支,如:git push -u origin dev 至于Github重命名文件夹删除类似,移动文件后自动删除文件夹,然后创建新文件夹

    14.4K40

    在Linux系统中如何删除文件夹

    linux删除文件夹的方法有两种:rmdir命令和rm命令。很多人习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,此时就需要使用rm命令了。下面我们就来了解一下这两个命令。...1、Linux rmdir命令:删除空目录(空的文件夹) mdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为: rmdir [-p] 文件夹名 -...rm是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用rm命令删除文件或目录时,系统不会产生任何提示信息。...-i:和-f正好相反,在删除文件或目录之前,系统会给出提示信息,使用-i可以有效防止不小心删除有用的文件或目录。...-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件

    3.3K20

    如何C# 项目中链接一个文件夹下的所有文件

    C# 项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码。常见的比如链接 AssemblyInfo.cs 文件,这样我们就可以在项目中使用这个文件中的版本号等信息。...但是如果我们想要链接一个文件夹下的所有文件,该怎么做呢?今天我们就来看看如何C# 项目中链接一个文件夹下的所有文件。...编辑项目文件引入文件夹下的所有文件那如果想要引入多个文件,我们可以使用通配符来引入文件夹下的所有文件。...我们可以在解决文件夹下创建一个 Directory.Build.props 文件,然后在这个文件中引入文件夹下的所有文件。...项目中引入文件夹下的所有文件

    91380
    领券