如何设置剪贴板以复制文件?

5
在我的应用程序中,我允许用户选择与磁盘上的文件相对应的项目。当用户按下Ctrl+C时,我希望文件被发送到剪贴板,用户可以将文件粘贴到其他地方。
我希望以一种方式实现它,使得用户可以在我的应用程序内复制,但不能粘贴。然后用户可以将文件粘贴到资源管理器实例或其他可以从剪贴板接受文件的应用程序中。
我知道如何设置剪切板中的信息,但不知道如何将其设置为Windows识别为某些文件的复制操作。
我该如何实现这个功能?
2个回答

11

要捕获 CTRL + C,您可以在 KeyPress 事件中检查按下的键。并且使用类似以下内容来复制文件:

private void CopyFile(string[] ListFilePaths)
{
  System.Collections.Specialized.StringCollection FileCollection = new System.Collections.Specialized.StringCollection();

  foreach(string FileToCopy in ListFilePaths)
  {
    FileCollection.Add(FileToCopy);
  }

  Clipboard.SetFileDropList(FileCollection);
}

这在 C# .NET 4.0 中对我抛出了一个 ArgumentException - Emanuel Vintilă

7

谢谢,我会尝试一下。是的,它们是用户磁盘上的实际文件。 - Joan Venge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接