练习下递归删除

Posted tim-zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习下递归删除相关的知识,希望对你有一定的参考价值。

 1         /// <summary>
 2         /// 删除按钮
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void button1_Click(object sender, EventArgs e)
 7         {
 8             Del("D://test");
 9         }
10 
11         /// <summary>
12         /// 删除文件
13         /// </summary>
14         /// <param name="path"></param>
15         private void DelFile(string path)
16         {
17             DirectoryInfo dir = new DirectoryInfo(path);
18             foreach (var item in dir.GetFiles())
19             {
20                 File.Delete(item.FullName);
21             }
22         }
23 
24         /// <summary>
25         /// 删除目录(递归删除后的空目录)
26         /// </summary>
27         /// <param name="path"></param>
28         private void Del(string path)
29         {
30             DelFile(path);//1、删除第一级目录下的文件
31             //2、递归目录下的所有目录
32             DirectoryInfo test = new DirectoryInfo(path);
33             foreach (var item in test.GetDirectories())
34             {
35                 Del(item.FullName);
36                 Directory.Delete(item.FullName);
37             }        
38         }

其实上面的代码一行就可以搞定:   Directory.Delete(path,true);

递归其实很常用,可以拓展到递归下载服务器上的文件,我做过的项目,自动更新功能目前就是到服务器上递归下载文件来实现的

很多东西经常不用容易疏忽,脑袋不思考也容易迟钝,多多敲下代码熟悉感觉,从简单的做起

以上是关于练习下递归删除的主要内容,如果未能解决你的问题,请参考以下文章

Java.nio:最简洁的递归目录删除

第1章第2节练习题2 非递归删除指定结点

JavaEE基础(二十三)/递归

ktor HTTP API 练习

Java 基础语法方法的使用

替换或删除后台堆栈上现有片段的代码不起作用