当前位置: 代码迷 >> ASP.NET >> Directory.Delete 有关问题 帮忙看下
  详细解决方案

Directory.Delete 有关问题 帮忙看下

热度:6059   发布时间:2013-02-25 00:00:00.0
Directory.Delete 问题 帮忙看下~
我想删除某路径下的除了名字为XXX的其他所有文件夹该怎么写啊? 只知道Directory.Delete(path)这样只能删除一个文件夹。


------解决方案--------------------------------------------------------
C# code
            foreach (string dir in Directory.GetDirectories(path))            {                if (dir != "XXX")                    Directory.Delete(dir);            }
------解决方案--------------------------------------------------------
探讨
C# code
foreach (string dir in Directory.GetDirectories(path))
{
if (dir != "XXX")
Directory.Delete(dir);
}

------解决方案--------------------------------------------------------
Directory.Delete(dir,true);
.NET 2.0
------解决方案--------------------------------------------------------

------解决方案--------------------------------------------------------
Net2.0 3.5已经可以使用

My.Computer.FileSystem.DeleteDirectory("目录", FileIO.DeleteDirectoryOption.DeleteAllContents)

效率更高一些


││博客空间:http://blog.csdn.net/lovingkiss
││资源下载:http://download.csdn.net/user/lovingkiss
││Email:loving-kiss@163.com [MSN也是这个]
││联系方式:Q66840199 项目、聊天、咨询、探讨、统统收费,呵呵......
╚---------------------------------------------------------------------------------------------------------ō*︻$▅▆▇◤ 


------解决方案--------------------------------------------------------
C# code
            foreach (string dir in Directory.GetDirectories(path))            {                if (dir != "XXX")                    Directory.Delete(dir);            }
------解决方案--------------------------------------------------------
通常是遍历判断删除,.NET 3.5的功能还未用到
------解决方案--------------------------------------------------------
探讨
Directory.Delete(dir,true);

------解决方案--------------------------------------------------------
2.0以前使用Directory确实是必须要循环遍历,参照:

http://www.dlog.cn/windhome/diary/28416685

3.5已经有了成型的操作模式
My.Computer.FileSystem.DeleteDirectory("目录", FileIO.DeleteDirectoryOption.DeleteAllContents) 

2.0里面有没有
My.Computer.FileSystem.DeleteDirectory
我还真的不记得了,呵呵~~
------解决方案--------------------------------------------------------
探讨
2.0以前使用Directory确实是必须要循环遍历,参照:

http://www.dlog.cn/windhome/diary/28416685

3.5已经有了成型的操作模式
My.Computer.FileSystem.DeleteDirectory("目录", FileIO.DeleteDirectoryOption.DeleteAllContents)

2.0里面有没有
My.Computer.FileSystem.DeleteDirectory
我还真的不记得了,呵呵~~

------解决方案--------------------------------------------------------
My对象中的很多类和方法在C#都没有,不过通过添加Microsoft.VisualBasic引用也能使用My对象了~~
------解决方案--------------------------------------------------------
哦,没注意,如果是这样,怎么都需要遍历一下了;
------解决方案--------------------------------------------------------
linq的写法。
C# code
            string path = @"d:\t";            var q = from p in Directory.GetDirectories(path)                    where p != (path+"\\"+"t1")//过滤                    select p;            foreach (var p in q)            {                Response.Write(p + "<br>");                //Directory.Delete(p);            }
------解决方案--------------------------------------------------------
探讨
谢谢各位, 要删除文件夹换得吧文件夹下的文件先删除,否则报错“目录不为空”。下面代码是参考网上例子写的,可以完成要求。这样做法在web应用中应该没有问题吧?

VB.NET codePrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadForEachdirAsStringInDirectory.GetDirectories(XXX上级目录路径)Ifdir<>Server.MapPath(XXX上级目录路径)+"XXX"ThenDeleteDir(dirChild(dir))

  相关解决方案