C#删除目录

我正在使用.NET Compact Framework 3.5并希望删除一些特定的文件夹及其子文件夹。 当我运行应用程序时,它会给出IO exception 。 我试过使用Directory.Delete(path)方法,但它没有用。

我怎么解决这个问题?

这是我的代码:

 using System; using System.Diagnostics; using System.IO; using System.Linq; using System.Collections.Generic; using System.Windows.Forms; namespace Reset_Client { static class Program { static void Main(){ myfunc(); MessageBox.Show("Cihaz resetlendi!"); } public static void myfunc() { string mainPath = @"\Storage Card\deneme"; try { DeleteDirectory(mainPath + "CRM"); DeleteDirectory(mainPath + "BHTS"); DeleteDirectory(mainPath + "IMAGES"); DeleteDirectory(mainPath + "STYLES"); DeleteDirectory(mainPath + "TABLES"); DeleteDirectory(mainPath + "LOG"); File.Delete(mainPath + "Agentry.ini"); File.Delete(mainPath + "Agentry.app"); File.Delete(mainPath + "Agentry.usr"); } catch (IOException e) { myfunc(); } } public static void DeleteDirectory(string target_dir) { FileInfo fileInfo = new FileInfo(target_dir); FileAttributes attributes = fileInfo.Attributes; if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { // set the attributes to nonreadonly fileInfo.Attributes &= ~FileAttributes.ReadOnly; } string[] files = Directory.GetFiles(target_dir); string[] dirs = Directory.GetDirectories(target_dir); foreach (string file in files) { File.Delete(file); } foreach (string dir in dirs) { DeleteDirectory(dir); } Directory.Delete(target_dir, false); } } } 

为什么不递归删除目录:

 Directory.Delete(path, true); 

看到这里 。

另外,请看这里,因为它可能与您遇到的类似。

试试这个..

 var dir = new DirectoryInfo(@FolderPath); dir.Delete(true); 

你不知道你得到了什么样的IOexception ,你错过了路径中的反斜杠()吗?

 mainPath + "CRM" becomes "\Storage Card\denemeCRM" and not "\Storage Card\deneme\CRM"