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.");
            }
        }
Exemple #2
0
        //create folder
        public void CreateFolder(IItemNode node)
        {
            CheckThread(false);
            switch (node.GetRoot.RootType.Type)
            {
            case CloudType.Dropbox:
                Dropbox.CreateFolder(node);
                break;

            case CloudType.GoogleDrive:
                GoogleDrive.CreateFolder(node);
                break;

            case CloudType.LocalDisk:
                LocalDisk.CreateFolder(node);
                break;

            case CloudType.Mega:
                MegaNz.CreateFolder(node);
                break;

            default:
                throw new UnknowCloudNameException("Error Unknow Cloud Type: " + node.GetRoot.RootType.Type.ToString());
            }
        }
Exemple #3
0
        //download file
        public Stream GetFileStream(IItemNode node, long Startpos = -1, long endpos = -1, bool IsUpload = false, object DataEx = null)
        {
            switch (node.GetRoot.RootType.Type)
            {
            case CloudType.Dropbox:
                return(Dropbox.GetFileStream(node, Startpos, endpos));//download only

            case CloudType.GoogleDrive:
                return(GoogleDrive.GetFileStream(node, Startpos, endpos));//download only

            case CloudType.LocalDisk:
                return(LocalDisk.GetFileSteam(node, IsUpload, Startpos));//upload/download

            case CloudType.Mega:
                return(MegaNz.GetStream(node, Startpos, endpos, IsUpload, DataEx));//

            default:
                throw new UnknowCloudNameException("Error Unknow Cloud Type: " + node.GetRoot.RootType.Type.ToString());
            }
        }
Exemple #4
0
        //List item in folder
        public IItemNode GetItemsList(IItemNode node)
        {
            CheckThread(false);
            switch (node.GetRoot.RootType.Type)
            {
            case CloudType.Dropbox:
                return(Dropbox.GetListFileFolder(node));

            case CloudType.GoogleDrive:
                return(GoogleDrive.GetListFileFolder(node));

            case CloudType.LocalDisk:
                return(LocalDisk.GetListFileFolder(node));

            case CloudType.Mega:
                return(MegaNz.GetListFileFolder(node));

            default:
                throw new UnknowCloudNameException("Error Unknow Cloud Type: " + node.GetRoot.RootType.Type.ToString());
            }
        }
Exemple #5
0
        public IItemNode GetFileInfo(IItemNode node)
        {
            switch (node.GetRoot.RootType.Type)
            {
            case CloudType.Dropbox:
                return(Dropbox.GetMetaData(node));

            case CloudType.GoogleDrive:
                Drivev2_File item = GoogleDrive.GetMetadataItem(node);
                node.Info.Size    = item.fileSize ?? -1;
                node.Info.Name    = item.title;
                node.Info.DateMod = item.modifiedDate ?? DateTime.Now;
                return(node);

            case CloudType.LocalDisk:
                return(LocalDisk.GetFileInfo(node));

            case CloudType.Mega:
                return(MegaNz.GetItem(node));

            default:
                throw new UnknowCloudNameException("Error Unknow Cloud Type: " + node.GetRoot.RootType.Type.ToString());
            }
        }
Exemple #6
0
        public ExplorerNode GetFileInfo(ExplorerNode node)
        {
            switch (node.GetRoot.NodeType.Type)
            {
            case CloudType.Dropbox:
                return(Dropbox.GetMetaData(node));

            case CloudType.GoogleDrive:
                GD_item item = GoogleDrive.GetMetadataItem(node);
                node.Info.Size    = item.fileSize;
                node.Info.Name    = item.title;
                node.Info.DateMod = DateTime.Parse(item.modifiedDate);
                return(node);

            case CloudType.LocalDisk:
                return(LocalDisk.GetFileInfo(node));

            case CloudType.Mega:
                return(MegaNz.GetItem(node));

            default:
                throw new UnknowCloudNameException("Error Unknow Cloud Type: " + node.GetRoot.NodeType.Type.ToString());
            }
        }
Exemple #7
0
            void work()
            {
                Thread.Sleep(500);
                foreach (ExplorerNode item in items)
                {
                    while (cancel)
                    {
                        Thread.Sleep(100); if (closedform)
                        {
                            return;
                        }
                    }
                    if (closedform)
                    {
                        return;
                    }
                    bool Iserror = false;
                    ui.UpdateText(AppSetting.lang.GetText(LanguageKey.DeleteForm_updatetext_Deleting.ToString()) + item);
                    try
                    {
                        switch (item.GetRoot.NodeType.Type)
                        {
                        case CloudType.Dropbox:
                            if (!Dropbox.Delete(item, PernamentDelete))
                            {
                                Iserror = true;
                            }
                            break;

                        case CloudType.GoogleDrive:
                            if (!GoogleDrive.File_trash(item, PernamentDelete))
                            {
                                Iserror = true;
                            }
                            break;

                        case CloudType.LocalDisk:
                            if (!LocalDisk.Delete(item, PernamentDelete))
                            {
                                Iserror = true;
                            }
                            break;

                        case CloudType.Mega:
                        default: throw new UnknowCloudNameException("Error Unknow Cloud Type: " + item.GetRoot.NodeType.Type.ToString());
                        }
                        if (!Iserror)
                        {
                            ui.UpdateText(AppSetting.lang.GetText(LanguageKey.DeleteForm_updatetext_Deleted.ToString()) + "\r\n");
                        }
                        else
                        {
                            ui.UpdateText(AppSetting.lang.GetText(LanguageKey.DeleteForm_updatetext_Error.ToString()) + "\r\n");
                            if (ui.AutoClose)
                            {
                                ui.SetAutoClose(false);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ui.UpdateText(AppSetting.lang.GetText(LanguageKey.DeleteForm_updatetext_Error.ToString()) + "\r\nMessage:" + ex.Message + "\r\n");
                        if (ui.AutoClose)
                        {
                            ui.SetAutoClose(false);
                        }
                    }
                }
                if (ui.AutoClose)
                {
                    ui.Close_();
                }
                else
                {
                    ui.SetTextButtonCancel(AppSetting.lang.GetText(LanguageKey.BT_close.ToString()));
                    while (!ui.AutoClose)
                    {
                        Thread.Sleep(100);
                        if (cancel)
                        {
                            ui.Close_();
                        }
                    }
                }
            }