C#下利用堆栈删除文件夹的算法
来源:互联网 发布:手机vpn软件哪个好 编辑:程序博客网 时间:2024/06/02 01:23
老师布置了个作业要模拟CMD的一些功能~其中做RD命令,即删除某文件夹的时候发现,C#默认的Delete只对空文件夹有效,网上虽然有不少递归算法,但因为跟模拟CMD的其他功能不是很合,所以参考了一下,写了这个算法。原理很简单,就是用堆栈模拟了递归的功能~呵呵
string tFilePath = "C://WINDOWS";//tFilePath 是准备删除的文件夹的路径
Stack st = new Stack ( );//存放目录地址的堆栈
if ( Directory . Exists ( tFilePath ) )
{
//由于Delete()方法仅能用于空目录
//所以利用堆栈模拟递归,清空目录及子目录下所有的文件
//并将所有目录的路径压入堆栈
st . Push ( tFilePath );
while ( st . Count != 0 )
{
string [] tDirectorys = Directory . GetDirectories ( st . Peek ( ) . ToString ( ) );
string [] tFiles = Directory . GetFiles ( st . Peek ( ) . ToString ( ) );
if ( tDirectorys . Length == 0 && tFiles . Length == 0 )//当前目录已为空目录
Directory . Delete ( st . Pop ( ) . ToString ( ) );//删除并在堆栈弹出当前目录
foreach ( var x in tDirectorys )
{
st . Push ( x );//把目录地址压入堆栈
}
foreach ( var x in tFiles )
{
File . Delete ( x );//清空目录下所有文件(文件夹被保留)
}
}
}
- C#下利用堆栈删除文件夹的算法
- C# 删除指定文件夹下的文件
- C#删除文件夹下所有的文件
- C#删除文件夹下的文件
- 利用短名来删除windows下的不合法文件或者文件夹
- c#删除一个文件夹下的符合条件的文件
- C# 删除指定目录下的 所有指定文件、文件夹
- C# 删除目录下的所有文件及子文件夹
- JAVA利用递归的方法删除一个文件夹以及文件夹下所有的子文件
- C#复制文件夹,删除文件夹的方法
- C#复制文件夹,删除文件夹的方法
- C# 删除某文件夹下 过期文件
- C# 删除某文件夹下 过期文件
- C#删除文件夹下所有文件
- C#批量删除指定文件夹下指定文件名的所有文件夹
- C#批量删除指定文件夹下指定文件名的所有文件夹
- 删除文件夹下的文件
- C# 删除指定文件以及文件夹下的所有文件的方法
- “从用户数据存储中检索信息时出错,未找到平台。”出错时的解决办法
- 菜鸟路--第三天
- ASP.NET程序中常用的三十三种代码
- undefine, null, NaN 区别
- DOS网络
- C#下利用堆栈删除文件夹的算法
- 灌水
- C# 动态生成textbox,Combobox等控件
- Vi 操作入门
- 原来我是这么勤奋 可是我很笨
- linux初学者要养成的七个习惯【转载】
- 如果你想让别人给你的代码查错,先来这里看看
- 新人
- typedef用法小小结