0

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

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

可能是我的期望太高了。即使我保留了一组允许的文件类型(.xlsx、.sln 等),我也无法想到保存该类型的文件。似乎我无法从 DataObject 类型中获取字节,这将是一种简单的方法。

关于我如何做到这一点的任何想法?谢谢。

4

1 回答 1

0

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

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

似乎所有不是音频/图像/字符串的文件都有一组非常具体的格式,只是我的想法

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

于 2014-04-13T22:32:26.257 回答