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); } }
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); }