I'm trying to delete a folder and all files and folders within that folder, I'm using the code below and I get the error Folder is not empty, any suggestions on what I can do?
try { var dir = new DirectoryInfo(@FolderPath); dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly; dir.Delete(); dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i].Index); } catch (IOException ex) { MessageBox.Show(ex.Message); } 8 Answers
dir.Delete(true); // true => recursive delete 0Read the Manual:
Directory.Delete Method (String, Boolean)
Directory.Delete(folderPath, true); 0Try:
System.IO.Directory.Delete(path,true) This will recursively delete all files and folders underneath "path" assuming you have the permissions to do so.
0For those of you running into the DirectoryNotFoundException, add this check:
if (Directory.Exists(path)) Directory.Delete(path, true); The Directory.Delete method has a recursive boolean parameter, it should do what you need
0Err, what about just calling Directory.Delete(path, true); ?
You should use:
dir.Delete(true); for recursively deleting the contents of that folder too. See MSDN DirectoryInfo.Delete() overloads.
0Try this.
namespace EraseJunkFiles { class Program { static void Main(string[] args) { DirectoryInfo yourRootDir = new DirectoryInfo(@"C:\somedirectory\"); foreach (DirectoryInfo dir in yourRootDir.GetDirectories()) DeleteDirectory(dir.FullName, true); } public static void DeleteDirectory(string directoryName, bool checkDirectiryExist) { if (Directory.Exists(directoryName)) Directory.Delete(directoryName, true); else if (checkDirectiryExist) throw new SystemException("Directory you want to delete is not exist"); } } }