private void ExecuteDrop(EventTranscriptionParameter <DragEventArgs> parameter)
        {
            if (!parameter.EventArgs.Data.GetDataPresent(DataFormats.FileDrop))
            {
                return;
            }

            var filePaths = (string[])parameter.EventArgs.Data.GetData(DataFormats.FileDrop, true);

            droppedFiles   = filePaths.Select(x => WindowsFile.CreateFromPath(x)).ToArray();
            IsDropMenuOpen = true;
        }
Example #2
0
        public override void Execute(object parameter)
        {
            var active = MainViewModel.ActiveDirectoryContainer.ActiveView;
            //get data from clipboard
            var data = Clipboard.GetDataObject();

            //files
            var paths = (string[])data.GetData(DataFormats.FileDrop, true);

            if (paths == null)
            {
                MessageBox.Show("Schowek jest pusty");
                return;
            }

            //get flag indicating whether it is copy or cut
            var  stream   = (MemoryStream)data.GetData("Preferred DropEffect", true);
            bool copyFlag = stream.ReadByte() == 5 ? true : false;

            //change paths into IDirectoryViewItems
            var items = new IDirectoryViewItem[paths.Length];

            for (int i = 0; i < paths.Length; i++)
            {
                items[i] = WindowsFile.CreateFromPath(paths[i]);
            }

            MultiFileOperation operation;

            if (copyFlag)
            {
                operation = new CopyOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem);
            }
            else
            {
                operation = new MoveOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem);
            }

            OperationManager.ExecuteOperation(operation);
        }