老师布置了个作业要模拟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 )
{ </