Searcher
Searcher

Reputation: 1855

Directory is not empty error in c#

In my example I am trying to delete the folders under a particular folder. My folder structure like this... C:\Export\MyDir1\MyDir2\MyDir3\MyDir4\MyDir5 This structure will come on the fly. Next time when I run my application it should check for C:\Export\MyDir1 directory and delete if exists. I written like this

private static string getExportPath(string exportTargetPath, string parentIssue)
        {
            string exportPath = Path.Combine(exportTargetPath, parentIssue);
            if (Directory.Exists(exportPath))
            {
                string[] files = Directory.GetFiles(exportPath);
                string[] dirs = Directory.GetDirectories(exportTargetPath);

                File.SetAttributes(exportTargetPath, FileAttributes.Normal);
                Directory.Delete(exportTargetPath,false);
            }

            return exportPath;
        }

I checked with the issue posted in this sit Issue I tried with this one but can't get solution. As per the suggested answer for this question, when i try to iterate through the directories then it is going to infinite loop. Where I done the mistake? Could any one help me?

Upvotes: 8

Views: 18990

Answers (2)

FishBasketGordo
FishBasketGordo

Reputation: 23142

Do a recursive delete: Directory.Delete(exportTargetPath, true);

MSDN specifically says that you will get an IOException if:

The directory specified by path is read-only, or recursive is false and path is not an empty directory.

Upvotes: 22

MrSoundless
MrSoundless

Reputation: 1384

The 2nd param of Directory.Delete is named 'recursive' for a reason. Try setting that to true.

Upvotes: 6

Related Questions