如何在Ruby中获取剪贴板中的临时文件



我正在尝试获取剪贴板中临时文件的目录。我写的代码像这个

require 'clipboard'
puts Clipboard.paste

我注意到,当它是剪贴板中的文本时,脚本会打印出文本,但当它涉及到文件时,输出是一个空字符串。

在Ruby中,从剪贴板获取文件的正确方法是什么?

剪贴板gem使用macOS上的命令行应用程序pbcopypbpaste。两个应用程序都不适用于您描述的文件。

这个答案有更多的细节,但简短的版本是,当你在Finder中选择一个文件并按CMD+C时,macOS会将对所选文件的引用放入剪贴板,然后当你按CMD+V时,macOS会解释引用的文件,并将文件复制到目标位置。为促进这一行动,有许多幕后工作要做。它是剪贴板基本功能的扩展。

pbcopypbpaste都不支持该功能;它们只能对字符串进行操作。因此,您不能将剪贴板gem用于此目的。

如果要复制的文件是纯文本,则可以将其读取为字符串,然后将其粘贴到新文件中。如果文件不是纯文本(例如,图像或编译的二进制文件(,则不能执行此操作。

最新更新