Как получить временный файл в буфер обмена в Ruby? - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь получить каталог временного файла, который находится в буфере обмена.Я написал такой код

require 'clipboard'

puts Clipboard.paste

Я заметил, что когда это текст в буфере обмена, сценарий печатает текст, но когда дело доходит до файла, на выходе получается пустая строка.

Как правильно получить файл из буфера обмена в Ruby?

1 Ответ

0 голосов
/ 26 ноября 2018

В буфере обмена используются приложения командной строки pbcopy и pbpaste в macOS.Ни одно из приложений не работает с файлами так, как вы их описываете.

Более подробная информация содержится в этом ответе , но короткая версия такова, что когда вы выбираете файл в Finder и нажимаете CMD+ C, macOS помещает ссылку на выбранный файл в буфер обмена, а затем, когда вы нажимаете CMD + V, macOS интерпретирует указанный файл и выполняет операцию копирования файла в место назначения.Для облегчения этой операции проделано много закулисной работы.Это расширение базовой функциональности буфера обмена.

Ни pbcopy, ни pbpaste не поддерживают эту функцию;они могут работать только на струнах.Соответственно, вы не можете использовать гем буфера обмена для этой цели.

Если файл, который вы хотите скопировать, имеет открытый текст, вы можете прочитать его в строку и затем вставить в новый файл.Если файл не является открытым текстом (например, изображение или скомпилированный двоичный файл), вы не можете сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...