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()); } }
public void CreateFolderTree(DirectoryInfo root) { var FolderList = root.GetDirectories("*"); foreach (var subfolder in FolderList) { FolderVM subFolderVM = new FolderVM(subfolder.FullName); subFolderVM.CreateFolderTree(subfolder); SubFolderList.Add(subFolderVM); subFolderVM.PropertyChanged += MarkedChangeEventHandler; } }
public void Add(IFtpItem item) { lock (this) { if (item is IFtpFolder) { item.Parent = this; SubFolderList.Add(item.Name.ToLower(), item); } else if (item is IFtpFile) { item.Parent = this; FileList.Add(item.Name.ToLower(), item); } } }
public override Boolean HasSubfolder(String folder) { return(SubFolderList.ContainsKey(folder.ToLower())); }