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."); } }
//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()); } }
//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()); } }
//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()); } }
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()); } }
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()); } }
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_(); } } } }