首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

复制粘贴功能是如何实现的?

这个功能似乎非常强大,兼容各种类型的数据,那么它的实现机制是怎样的呢?

操作系统中会有一块地方,称作剪贴板(clipboard),专门用来处理复制粘贴。

不同系统的细节可能会不同,但大致上是这样的:

复制文本时,会把所复制的文本克隆一份到剪贴板里面。粘贴文本时,再将剪贴板里的文本克隆到所粘贴应用程序之中;

复制文本时会保留其样式(比如在 Office 软件中复制,也会存储字体、字号等等信息,复制到剪贴板的实质上是一种「标记语言」)。但粘贴时若应用程序(比如记事本)不支持这些样式,则会去掉样式;

复制图片、混合富文本时,也是同样先克隆到剪贴板里。

复制文件时,系统只会把文件的路径复制到剪贴板,等到粘贴时再分情况处理

同一分区下,粘贴(或剪切)文件,都不会真正在存储设备里直接克隆、挪动,而是更改此文件的路径(path)属性。当然这与不同文件系统的具体实现有关;

(这也就是为什么,「复制 删除复制源文件 粘贴」这个操作会在大部分系统中失效了)

不同分区下,粘贴(或剪切)文件,会重新开辟空间,然后克隆文件;

涉及到与其他设备(即插即用设备等)之间的复制粘贴则更加复杂,实现各有不同。

​还要考虑的情况,就是涉及虚拟机、远程主机的复制粘贴机制。虚拟机软件、远程主机软件都会有一个「介于两系统之间的」剪贴板,「连接起」这两个系统的各自剪贴板,并做一些编码格式转换的工作。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OznTTcqgUMIGDEMuswaIXY9g0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券