public void Do(params object[] args) { Album = args[0] as Album; Indexes = args[1] as int[]; Mode = (ClipMode)args[2]; Clipboarder = Clipboarder.Default; Clipboarder.Default = Clipboarder.CreateClipboarder(Album, Indexes, Mode); var arr = new string[Indexes.Length]; var dir = $"{Program.Config["RootPath"]}/temp/clipbord_image"; if (Directory.Exists(dir)) { Directory.Delete(dir, true); } Directory.CreateDirectory(dir); var builder = new LSBuilder(); for (var i = 0; i < Indexes.Length; i++) { var entity = Album[Indexes[i]]; var path = $"{dir}/{entity.Index}"; builder.WriteObject(entity, path + ".json"); arr[i] = path + ".png"; entity.Picture.Save(arr[i]); } var collection = new StringCollection(); collection.AddRange(arr); Clipboard.SetFileDropList(collection); }
public void Do(params object[] args) { Array = args[0] as Album[]; Mode = (ClipMode)args[1]; Clipboarder = Clipboarder.Default; Clipboarder.Default = Clipboarder.CreateClipboarder(Array, null, Mode); var builder = new LSBuilder(); var dir = $"{Program.Config["RootPath"]}/temp/clipbord_img"; if (Directory.Exists(dir)) { //删除文件夹内容 Directory.Delete(dir, true); } Directory.CreateDirectory(dir); var path_arr = new string[Array.Length]; for (var i = 0; i < Array.Length; i++) { path_arr[i] = $"{dir}/{Array[i].Name}"; Tools.SaveFile(path_arr[i], Array[i]); var json_path = path_arr[i].RemoveSuffix(".ogg"); json_path = json_path.RemoveSuffix(".img"); json_path = $"{json_path}.json"; var root = new LSObject { { "path", Array[i].Path } }; builder.Write(root, json_path); } var collection = new StringCollection(); collection.AddRange(path_arr); Clipboard.SetFileDropList(collection); }
public void Do(params object[] args) { Target = args[0] as Album; Index = (int)args[1]; Clipboarder = Clipboarder.Default; Redo(); }
public void Do(params object[] args) { Index = (int)args[0]; Clipboarder = Clipboarder.Default; var array = new Album[0]; if (Clipboarder != null) { array = Clipboarder.Albums; if (Clipboarder.Mode == ClipMode.Cut) { Clipboarder.Clear(); Clipboard.Clear(); Connector.RemoveFile(array); } for (var i = 0; i < array.Length; i++) { array[i] = array[i].Clone(); } } else if (Clipboard.ContainsFileDropList()) { var collection = Clipboard.GetFileDropList(); var file_arr = new string[collection.Count]; collection.CopyTo(file_arr, 0); array = Npks.Load(file_arr).ToArray(); var builder = new LSBuilder(); for (var i = 0; i < array.Length; i++) { var name = file_arr[i].RemoveSuffix(".img"); name = name.RemoveSuffix(".ogg"); name += ".json"; if (File.Exists(name)) { var root = builder.Read(name)["path"]; var path = root.Value?.ToString(); if (path != null) { array[i].Path = path; } } } } Indexes = new int[array.Length]; if (array.Length > 0) { if (Connector.FileCount > 0) { Connector.SelectedFileIndex = Connector.FileCount - 1; } Index = Index > Connector.List.Count ? Connector.List.Count : Index; Index = Index < 0 ? 0 : Index; for (var i = 0; i < array.Length; i++) { Indexes[i] = Index + i; } Connector.List.InsertRange(Index, array); } }
public void Do(params object[] args) { Target = args[0] as Album; Index = (int)args[1]; Clipboarder = Clipboarder.Default; var array = new ImageEntity[0]; if (Clipboarder != null) { Indexes = Clipboarder.Indexes; Source = Clipboarder.Album; array = new ImageEntity[Indexes.Length]; Source.Adjust(); for (var i = 0; i < array.Length; i++) { array[i] = Source[Indexes[i]].Clone(Target); } if (Clipboarder.Mode == ClipMode.Cut) { //如果是剪切,清空剪切板 Clipboarder.Default = null; Clipboard.Clear(); for (var i = 0; i < array.Length; i++) { Source.List.Remove(array[i]); } } Source.Adjust(); } else if (Clipboard.ContainsFileDropList()) { var collection = Clipboard.GetFileDropList(); array = new ImageEntity[collection.Count]; var builder = new LSBuilder(); for (var i = 0; i < collection.Count; i++) { if (!File.Exists(collection[i])) { continue; } var image = Image.FromFile(collection[i]) as Bitmap; var json = collection[i].Replace(".png", ".json"); if (File.Exists(json)) { var obj = builder.Read(json); array[i] = obj.GetValue(typeof(ImageEntity)) as ImageEntity; array[i].Parent = Target; array[i].Picture = image; } } } Target.List.InsertRange(Index, array); Target.Adjust(); }