苏飞论坛

标题: C#递归删除文件夹目录及文件的方法 [打印本页]

作者: 站长苏飞    时间: 2013-7-10 09:15
标题: C#递归删除文件夹目录及文件的方法
                      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); //删除已空文件夹                 
            }
        }

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


作者: yangying    时间: 2013-7-10 10:54
强烈支持楼主ing……
作者: 记忆、凌乱    时间: 2013-7-17 17:44
感谢苏菲,一路有你真好……
作者: 凌晨丶草未眠    时间: 2013-7-19 15:20
Directory类没找到
作者: 站长苏飞    时间: 2013-7-19 15:34
Directory在System.io里面
作者: 站长苏飞    时间: 2013-7-19 15:34
凌晨丶草未眠 发表于 2013-7-19 15:20
Directory类没找到

Directory在System.io里面

作者: gangn    时间: 2013-7-22 22:05
现在没时间看,先留个记号,回头细细品味!




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4