Чтобы воспроизвести точную копию файла из буфера обмена, единственный способ состоит в том, если буфер обмена содержит побайтовую копию оригинала. Этого не происходит, когда содержимое поступает из функции «Копировать» в программе.
Теоретически можно создать программу для этого, установив объект типа blob с копией исходного файла, но это будет крайне неэффективно и приведет к потере цели буфера обмена.
Некоторые баллы:
- При копировании в буфер обмена с помощью файлового менеджера в буфере обмена будет ссылка на исходный файл (а не на весь файл, который потенциально может быть намного больше, чем RAM)
- Большинство программ устанавливает содержимое буфера обмена в «полезную версию» отображаемых или выбранных данных. Это очень сильно зависит от интерпретации создателем программы.
- Анализ содержимого буфера обмена при чтении изображения снова зависит от прихотей библиотеки, используемой для обработки данных и упаковки их обратно в формат изображения.
Обычно, если вы хотите точно скопировать файл, лучше всего скопировать исходный файл.
Сказав это: оцените цель процесса копирования-вставки и решите, достаточно ли данных, которые вы получаете из буфера обмена, для намеченной цели. Очевидно, это зависит от того, для чего вы хотите его использовать.