void RemoveDirectoryTreeL(RFs& aFs, const TDesC& aFileName) { TParse directory; User::LeaveIfError(directory.SetNoWild(aFileName, NULL, NULL)); while(!directory.IsRoot()) { // try to remove this directory TInt err = aFs.RmDir(directory.DriveAndPath()); if(err == KErrInUse || err == KErrAccessDenied) { break; } VerifyDeletionErrorL(err); // move to deleted directory's parent User::LeaveIfError(directory.PopDir()); } }