public override void DeleteFolder(String folder, Boolean recursive, VirtualFtpSession session) { if (!HasSubfolder(folder)) { throw new FtpException(String.Format("A folder named \"{0}\" does not exists.", folder)); } if (!AllowDeleteItems(session)) { throw new FtpException(550, String.Format("Cannot delete folder \"{0}\", permission to delete from this folder denied.", folder)); } IFtpFolder lFolder = GetSubFolder(folder, session); if (!lFolder.AllowDeleteThis(session)) { throw new FtpException(550, String.Format("Cannot delete folder \"{0}\", permission to delete folder denied.", folder)); } lock (this) { lFolder.Invalidate(); SubFolderList.Remove(folder.ToLower()); } }