C# delete a folder and all files and folders within that folder
I'm trying to delete a folder and all files and folders within that folder, I'm using the code below开发者_JAVA百科 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);
}
dir.Delete(true); // true => recursive delete
Read the Manual:
Directory.Delete Method (String, Boolean)
Directory.Delete(folderPath, true);
Try:
System.IO.Directory.Delete(path,true)
This will recursively delete all files and folders underneath "path" assuming you have the permissions to do so.
For 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
Err, 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.
Try 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");
}
}
}
精彩评论