探寻复制和粘贴的神秘国度
复制、粘贴是每个人都会用到的操作,并且用起来也是轻车熟路,但你知道复制、粘贴都干了些什么吗?那就让我们一起来探寻一下复制和粘贴的神秘国度吧!
一、什么是复制、粘贴
从通俗意义上来说,复制是将某事物通过某种方式制作成相同的一份或多份的行为,而粘贴是将某事物通过粘性物质附着到另一种物事之上的行为。在Windows中,复制和粘贴虽然和通俗意义上的复制、粘贴有着某些相似之处,但也早已超越了这种通谷意义。
从通俗意义上来说,复制是将某事物通过某种方式制作成相同的一份或多份的行为,而粘贴是将某事物通过粘性物质附着到另一种物事之上的行为。在Windows中,复制和粘贴虽然和通俗意义上的复制、粘贴有着某些相似之处,但也早已超越了这种通谷意义。
在Windows中,复制是指将某一数据从源头copy一份到“剪贴板”中或者是将表示数据的路径存放到“剪贴板”中,而粘贴是指将“剪贴板”中的数据copy一份到目的地或者是将路径所指向的数据copy一份到目的地。
通过上面的描述也可以看出,其实复制、与粘贴的本质都是copy,只是在实际操作时它们的“源”与“目标位置”不一样而已。
小知识:
数据:在Windows中,数据分为两类,一类是不可以用路径表示的文本、图片等内容(如某一文档中的文本、图片、表格等);另一类是可以使用路径描述的内容。
数据:在Windows中,数据分为两类,一类是不可以用路径表示的文本、图片等内容(如某一文档中的文本、图片、表格等);另一类是可以使用路径描述的内容。
剪贴板:在Windows中,表示存在于内存中的某一存储区域,用来存放“复制”、“剪切”等操作的临时数据的地方。
小提示:
文中的copy同样指“复制”的意思,为了区别于要解释的“复制”概念,这里以英文区别一下。在这里可能会有点绕,但看完本文后,相信你会有豁然开朗的感觉。
文中的copy同样指“复制”的意思,为了区别于要解释的“复制”概念,这里以英文区别一下。在这里可能会有点绕,但看完本文后,相信你会有豁然开朗的感觉。
二、复制、粘贴都干了什么
从上面的解释可以看出,在实际执行复制、粘贴操作时,Windows会分两种情况,一种是复制不能使用路径表示的数据,另一种是复制可以使用路径表示的数据,详细请往下看。
从上面的解释可以看出,在实际执行复制、粘贴操作时,Windows会分两种情况,一种是复制不能使用路径表示的数据,另一种是复制可以使用路径表示的数据,详细请往下看。
情况一:当复制不能使用路径表示的数据时(即文本、图片等),Windows会直接将数据本身copy一份到剪贴板中,当在目标位置执行粘贴操作时,将剪贴板中的数据直接copy一份到目标位置。
情况二:当复制可以使用路径表示的数据时(如文件、文件夹等),Windows会直接将表示数据的路径存放到剪贴板中,当在目标位置执行粘贴操作时,Windows会按照剪贴板中的路径去寻找数据源,然后将其copy一份到目标位置。这也是为什么复制文件后删除文件,再粘贴将会提示“无法读源文件或磁盘”的原因。
上面的描述也许不太靠谱,下面让我们用事实说话。在“运行”对话框中运行“clipbrd”(不含外侧引号)打开系统自带的“剪贴簿查看器”,然后分别复制文本、图片、文件或目录,并观察“剪贴簿查看器”中的内容即可明白。
小知识:
剪切:与复制类似的,在Windows中还有一个“剪切”,与复制不同的是,“剪切”后如果执行了“粘贴”操作,Windows在copy数据的同时会删除数据源,如果剪切的是可以用路径表示的数据,在删除数据源后还会清空剪贴板。
剪切:与复制类似的,在Windows中还有一个“剪切”,与复制不同的是,“剪切”后如果执行了“粘贴”操作,Windows在copy数据的同时会删除数据源,如果剪切的是可以用路径表示的数据,在删除数据源后还会清空剪贴板。
三、为什么第三方工具更快
Windows虽然好用,但复制数据的速度确实让人痛心,那为什么第三方工具(如teracopy、fastcopy等)复制数据的速度会快很多呢?其实现原理比较复杂,下面简单解释一下,相信大家就会明白了。
Windows虽然好用,但复制数据的速度确实让人痛心,那为什么第三方工具(如teracopy、fastcopy等)复制数据的速度会快很多呢?其实现原理比较复杂,下面简单解释一下,相信大家就会明白了。
1.Windows的做法
在Windows系统中,复制数据时采取的做法是先读取一部分数据存入系统缓存,然后再将缓存中的数据写入目标位置,但这个缓存开的比较小,因此其复制过程中的数据读、写操作几乎是同时进行的,这也就是速度慢的最主要原因。在Vista以后版本的系统中对复制过程已经进行了改善,其主要改善的地方便是增加了缓存大小,在复制大文件时,速度改善会比较明显。
在Windows系统中,复制数据时采取的做法是先读取一部分数据存入系统缓存,然后再将缓存中的数据写入目标位置,但这个缓存开的比较小,因此其复制过程中的数据读、写操作几乎是同时进行的,这也就是速度慢的最主要原因。在Vista以后版本的系统中对复制过程已经进行了改善,其主要改善的地方便是增加了缓存大小,在复制大文件时,速度改善会比较明显。
2.第三方工具的做法
第三方工具为了解决Windows复制慢的问题,往往是自己独立开辟一块更大的缓存区域,并且引入多线程处理机制,从而复制速度快了很多。
第三方工具为了解决Windows复制慢的问题,往往是自己独立开辟一块更大的缓存区域,并且引入多线程处理机制,从而复制速度快了很多。
对于第三方工具的暂停、断点续传功能,我们完全可以把这些复制增强工具看成是一个系统复制专用版的“下载工具”,这样对其所具有的增强功能就不难理解了。
以上便是个人对于复制、粘贴的一点看法。
PS:本文是08年发表于Cfan上的一篇知识性文章,感觉对初学者理解复制、粘贴还是有点用的,所以贴于此。
本文转自windyli 51CTO博客,原文链接:http://blog.51cto.com/windyli/314776,如需转载请自行联系原作者