http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 13764|回复: 6

[C#语言基础] C#递归删除文件夹目录及文件的方法

[复制链接]
发表于 2013-7-10 09:15:06 | 显示全部楼层 |阅读模式
                      C#递归删除文件夹目录及文件的方法

     我们在删除之前要先指定一下要删除的目录
比如我定义一个目录代码如下
[code=csharp]string dir = "c:\\sufei\\toll";[/code]
接下来要判断一下这个目录是否存在
这里我们要使用到Directory类,这个类主要是用来操作目录的
[C#] 纯文本查看 复制代码
 if (Directory.Exists(dir)) //
            {
                //存在这个目录           
            }


删除目录的方法如下
[C#] 纯文本查看 复制代码
Directory.Delete(dir, true); //删除已空文件夹   

删除文件的方法如下
[C#] 纯文本查看 复制代码
File.Delete(dir); //直接删除其中的文件

使用一个递归的方法进行删除如下所示
[C#] 纯文本查看 复制代码
 if (Directory.Exists(dir)) //如果存在这个文件夹删除之 
            {
                foreach (string d in Directory.GetFileSystemEntries(dir))
                {
                    if (File.Exists(d))
                        File.Delete(d); //直接删除其中的文件                        
                    else
                        DeleteFolder(d); //递归删除子文件夹 
                }
                Directory.Delete(dir, true); //删除已空文件夹                 
            }

我们再优化一下这个代码,提成一个方法如下
[C#] 纯文本查看 复制代码
 /****************************************
         * 函数名称:DeleteFolder
         * 功能说明:递归删除文件夹目录及文件
         * 参    数:dir:文件夹路径
         * 调用示列:
         *           string dir = Server.MapPath("test/");  
         *           DotNet.Utilities.FileOperate.DeleteFolder(dir);       
        *****************************************/
        /// <summary>
        /// 递归删除文件夹目录及文件
        /// </summary>
        /// <param name="dir"></param>  
        /// <returns></returns>
        public static void DeleteFolder(string dir)
        {
            if (Directory.Exists(dir)) //如果存在这个文件夹删除之 
            {
                foreach (string d in Directory.GetFileSystemEntries(dir))
                {
                    if (File.Exists(d))
                        File.Delete(d); //直接删除其中的文件                        
                    else
                        DeleteFolder(d); //递归删除子文件夹 
                }
                Directory.Delete(dir, true); //删除已空文件夹                 
            }
        }

大家试试吧,我测试过可以正常删除

本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-10 10:54:29 | 显示全部楼层
强烈支持楼主ing……
发表于 2013-7-17 17:44:33 | 显示全部楼层
感谢苏菲,一路有你真好……
发表于 2013-7-19 15:20:46 | 显示全部楼层
Directory类没找到
 楼主| 发表于 2013-7-19 15:34:06 | 显示全部楼层
Directory在System.io里面
 楼主| 发表于 2013-7-19 15:34:22 | 显示全部楼层

Directory在System.io里面
发表于 2013-7-22 22:05:58 | 显示全部楼层
现在没时间看,先留个记号,回头细细品味!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 09:01

© 2014-2021

快速回复 返回顶部 返回列表