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"