示例#1
0
        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());
            }
        }