保存复制到剪贴板中的任何文件类型

时间:2014-04-13 21:37:00

标签: c# file copy clipboard idataobject

我正在使用此Stack article的代码(特别是第二个答案)来监控剪贴板何时更改。此应用程序的最终目标是用户可以复制任何文件类型(无论是.xlsx,.pk3,.sln等),文件夹,图像还是字符串,并将其自动保存到临时目录中。我会设置文件大小限制,以便临时文件夹不会过载。应用程序的整体概念是提供便利,因此用户可以恢复已复制但随后删除或丢失的数据。

到目前为止,上面引用的代码对于字符串和图像非常有用。但是,在查看DataFormats列表中的项目(即usage:DataFormats.Bitmap)之后,我无法找到任何文件类型或文件夹的全部内容。我也找不到任何方法来确定复制的文件类型。有什么方法可以确定吗?例如,如果有办法获取文件的文件扩展名,那将有所帮助。

也许我的希望设定得太高了。即使我保留了一系列允许的文件类型(.xlsx,.sln等),我也无法想到保存这种类型的文件。似乎我无法从DataObject类型中获取字节,这将是最简单的方法。

关于如何实现这一目标的任何想法?谢谢。

1 个答案:

答案 0 :(得分:0)

为什么你无法找到所有内容的原因是因为每种格式都是由主机上的,使用该文件格式的应用程序注册的。 您可以通过使用获取剪贴板中保存的对象的当前文件格式列表  string [] formats = iData.GetFormats();

但是你不能仅序列化(精确复制)数据进来并将其保存为Clipboard.GetFileDropList()中的最后一个条目;

似乎所有不是音频/图像/字符串的文件都有一组非常特定的格式 好吧无论如何,只是我的想法

也许看这里 http://www.codeproject.com/Articles/15333/Clipboard-backup-in-C