我们平常在拷贝文件的时候会发现大文件拷贝起来往往需要很长时间,而删除起来却很快。稍微细心一点的朋友可能发现了,我们在拷贝文件的时候是按文件大小来计时的,即MB/秒,而在删除文件的时候却是按文件数量来计时的,即项/秒。为什么会这样呢?这就要从文件复制以及删除原理说起了。
硬盘中有个专门的区域,用来记录硬盘中文件的名称、大小、路径等信息。简单的来说,如果把硬盘看成一本书,这个专门的区域就相当于书的目录。我们在硬盘上存储数据时,会先产生一个文件路径,然后再将文件写进去。这个过程就相当于添加书的目录和内容,因此这个时间花费相对较长。
不过需要说明的一点是只有不同硬盘或不同分区间的文件移动或复制时,所花费时间才比较长。如果是在同一个硬盘的同一个分区内移动,时间就会快很多。这也很好理解,一本书的内容想复制到另外一本书上,或者一本书上的一个章节内容想要移到别的章节上需要花时间肯定比本章节内改个目录多的多。因此,同一个硬盘的同一个分区的文件移动或复制可以看成是章节内改目录,而书的内容并不改变。
再来说说删除。删除实际上就是我们把硬盘中这个文件存放的路径给删了,我们找不到文件路径因此我们就不能找到该文件,但是这个文件内容还是存在于硬盘中的。直到下一次有新的内容把原本这块被标记删除的部分覆盖时,这个文件才会被彻底删除。这个过程就相当于删除掉书的目录,而不删掉书的内容,因此文件删除是按目录的项数来计时的。而写入则主要是看写入的字数即文件大小来计时的。
578.png
这就是同样一个文件我们复制粘贴所花的时间比我们删除起来所花的时间多的原因了。尤其是针对单个大文件来说这种时间差将会更大。
工作中需要拷贝文件的场景很多,文件大且时间紧的情况下操作也着实令人着急。目前市场上出现的企业云盘类产品基本上很好地解决了这一问题,其中够快云库独创的“同步索引”技术更是可圈可点。
对云端文件进行扫描,依据文件名称、位置、大小、类型、备注等属性建立索引。设备只会将索引同步到本地,数十G的数据也可以很快完成。用户可以基于索引打开、编辑、删除、移动某个文件,而如果要在本地编辑文件内容的话,则临时向服务器请求下载。而且,下载后的文件安置在缓存区,基本不消耗硬盘。用户在离线状态下仍能在索引层面做一些操作,比如移动、重命名等。如果是有缓存的文件,离线后也能进行内容编辑。
原文发布时间为:2016年5月31日
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。