예제 #1
0
        public static void CopyPathsToClipboard(IEnumerable <string> paths,
                                                FileOperations.OperationType fileOp,
                                                ClipboardDataTypes dataTypes = ClipboardDataTypes.Data | ClipboardDataTypes.Files | ClipboardDataTypes.Text)
        {
            var dataObject = PathsToDataObject(paths, fileOp, dataTypes);

            if (dataObject != null)
            {
                Clipboard.SetDataObject(dataObject);
            }
        }
예제 #2
0
        public static IDataObject PathsToDataObject(IEnumerable <string> paths, FileOperations.OperationType fileOp, ClipboardDataTypes dataTypes)
        {
            if (paths.Count() == 0)
            {
                return(null);
            }

            FileOperationPathList pathList = new FileOperationPathList()
            {
                Paths         = paths,
                FileOperation = fileOp
            };

            StringBuilder    sb           = new StringBuilder();
            StringCollection fileDroplist = new StringCollection();

            foreach (string path in paths)
            {
                sb.AppendLine(path);
                fileDroplist.Add(path);
            }

            DataObject dataObject = new DataObject();

            if (dataTypes.HasFlag(ClipboardDataTypes.Data))
            {
                dataObject.SetData(pathList);
            }

            if (dataTypes.HasFlag(ClipboardDataTypes.Files))
            {
                dataObject.SetFileDropList(fileDroplist);
            }

            if (dataTypes.HasFlag(ClipboardDataTypes.Text))
            {
                dataObject.SetText(sb.ToString());
            }

            return(dataObject);
        }