2010-11-18 124 views
1

我是C#新手,我将制作一个简单的工具,它有一个按钮可以删除文档和设置中的所有文件夹,但不会删除管理员文件夹。用C删除文件夹#

有人能告诉我怎么做到这一点吗?

+0

看这里:http://bytes.com/topic/c-sharp/answers/245176-how-delete-folder-has-files – OmerGertel 2010-11-18 15:42:33

+3

你如何告诉“管理员文件夹”除了正常的? – Oded 2010-11-18 15:42:50

+7

我不寒而栗,想到这可能会造成什么破坏。在“文档和设置”中不加区分地删除文件夹是一项严重的高风险操作。你几乎肯定会从其他应用程序下拉出地毯。 – 2010-11-18 15:45:04

回答

2

您可以使用DirectoryInfo的

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("your path"); 
if (dir.Exists) 
    dir.Delete(true); 
+1

并且跳过“管理员文件夹”的要求? – Oded 2010-11-18 15:43:36

+0

所以在文件和设置下,我有很多的配置文件...并且有一些文件夹像管理员等,我怎么能写它,我不删除管理文件夹... sry英文 – Sebastian 2010-11-18 15:46:19

+0

因此,如果(dir.exists && dir.Name!=“管理员”){dir.delete(false)} ?? – Sebastian 2010-11-18 15:51:31

-1

您可以使用System.IO.DirectoryInfo,然后调用Delete(true)方法递归删除指定文件夹内的所有文件夹和文件。

MSDN Directory Info

我们只删除非管理员文件夹,你的意思是由管理员或由管理员拥有者所拥有的人。此外,您将无法删除当前用户不拥有的文件夹,因此您只需要盲目删除即可获得一些例外。

编辑回应一些不同意见

您可以真正做到在DirectorySecurityFileSecurity一些迭代(我认为这是文件的一种)弄清楚业主组的目录或文件,并从确定它是否是管理员。

+0

并且需要跳过“管理员文件夹”? – Oded 2010-11-18 15:45:20

+0

我只是无意中碰到错误的按钮,并提前发布 – msarchet 2010-11-18 15:47:11

0

这里有很多争论,到目前为止提供的答案将在技术上工作。但让我们尝试一种不同的方法... 为什么要这样做?正如你迄今为止所反应的那样,这可能不是一个好主意。所以也许有一些关于这个软件需要解决的背景,我们可能会提供更有用的答案?

编辑: 因此,你打算走到每台电脑用USB棒和批量删除?仍然不是一个好方法。一些快速谷歌搜索刚刚出现this,这可能会为你工作。最好的部分,它远程工作。因此,这将删除任务中的“走到每个PC”部分。

+0

hello david,原因是我会用c#删除所有旧用户配置文件......其中很多工作要用手删除它 – Sebastian 2010-11-18 16:00:46

+0

@matthias:我也推荐咨询ServerFault和超级用户。这听起来像Windows网络管理员应该能够做的事情。 (如果我们讨论许多配置文件和许多机器,我假设有一个,但即使没有,它仍然听起来像某个工具/过程已经存在的东西。) – David 2010-11-18 16:20:02