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