Exemple #1
0
        public bool MoveItem(ExplorerNode node, ExplorerNode newparent, string newname = null, bool Copy = false)
        {
            CheckThread(false);
            if (node.GetRoot == newparent.GetRoot)
            {
                bool flag = false;
                switch (node.GetRoot.NodeType.Type)
                {
                case CloudType.Dropbox: flag = Dropbox.Move(node, newparent, newname); break;

                case CloudType.GoogleDrive: GoogleDrive.MoveItem(node, newparent, newname).parents.ForEach(s => { if (!flag && s.id == newparent.Info.ID)
                                                                                                                  {
                                                                                                                      flag = true;
                                                                                                                  }
                                                                                                           }); break;

                case CloudType.LocalDisk: flag = LocalDisk.Move(node, newparent, newname); break;

                case CloudType.Mega:
                default: throw new Exception("CloudType not support (" + node.GetRoot.NodeType.Type.ToString() + ").");
                }
                if (flag)
                {
                    node.Parent.RemoveChild(node);
                    newparent.AddChild(node);
                }
                return(flag);
            }
            else
            {
                throw new Exception("Root not match.");
            }
        }