2010-11-18 218 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