我正在尝试获取剪贴板中的临时文件的目录。我写了这样的代码
require 'clipboard'
puts Clipboard.paste
我注意到,当它在剪贴板中是文本时,脚本会打印出文本,但是当涉及到文件时,输出是一个空字符串。
在Ruby中从剪贴板获取文件的正确方法是什么?
答案 0 :(得分:1)
剪贴板gem在macOS上使用命令行应用程序pbcopy
和pbpaste
。两种应用程序都无法按照您描述的方式来处理文件。
this answer上有更多详细信息,但简短的版本是,当您在Finder中选择文件并按CMD + C时,macOS会将对所选文件的引用放置到剪贴板中,然后您按CMD + V macOS会解释引用的文件并执行将文件复制到目标位置的操作。为了促进该操作,已经做了很多幕后工作。它是剪贴板基本功能的扩展。
pbcopy
和pbpaste
都不支持该功能;他们只能对字符串进行操作。因此,您不能为此目的使用剪贴板上的宝石。
如果要复制的文件是纯文本,则可以将其读取为字符串,然后将其粘贴到新文件中。如果文件不是纯文本文件(例如图像或已编译的二进制文件),则无法执行此操作。