软件搬家原理及其实现
文章更新日期:2011/11/21
我早已不在宿主机使用中国大陆地区装机量极大的各种卫士、管家软件,其之所以能流行,我想其正是切合了用户的需求:简单。有兴趣的话,不妨阅读:《真实的用户,真实的中国互联网》。
我对这类软件的态度,在《集系统优化清理维护于一身的Advanced SystemCare 5》一文表述得再明白不过。引述韩寒在《一些琐事》写的一句话:“我们总说,这个社会需要常识,需要启蒙,但其实我认为,互联网十年,该启蒙的人已经被启蒙了,有常识的人一直有常识”。
如果你正准备把安装在系统盘的软件转移到其他位置而安装卫士、管家之类的软件,不妨用几分钟的时间,看完下面的文字。
纵观市面上流行的带软件搬家功能的软件,都存在:仅支持NTFS分区这一前提。
这就为我们了解软件搬家原理及其实现方法找到了突破口。为什么这么说?
可以参考:微软TechNet中文IT技术社区Junction的下载介绍(英文)或《NTFS 新特性:Junction 应用详解》。
简而言之,Junction即:本地NTFS磁盘前提下,将真实存在的目录,链接到一个或多个位置,对任一位置的编辑,都对所有位置生效,而占用磁盘空间的仅是真实存在的目录。这类似于快捷方式,却又不同,在Windows看来,Junction的目录链与真实的目录无异。
下面就不再赘述其原理,结合具体例子,谈软件搬家的实现。
我们假设系统盘符为C,谷歌拼音输入法安装在系统盘。而现在C盘空间不足,用户希望能将谷歌拼音输入法转移到D盘。
我知道有人会问:“为什么不卸载/重新安装”?熟悉Google的用户都知道,包括谷歌拼音输入法在内的大部分的Google软件,是不能选择安装目录的。
原安装目录:C:\Program Files\Google\Google Pinyin 2
转移目标目录:D:\Program Files\Google\Google Pinyin 2
具体操作:
1.移动原安装目录到D:\Program Files下,即:”D:\Program Files\Google\Google Pinyin 2”;
2.转移目标目录链接到原安装目录,即:”D:\Program Files\Google\Google Pinyin 2”。
创建目录链:
=====================无奈的分割线=====================
junction "C:\Program Files\Google\Google Pinyin 2" "D:\Program Files\Google\Google Pinyin 2"
=====================无奈的分割线=====================
删除目录链:
=====================悲悯的分割线=====================
junction -d "C:\Program Files\Google\Google Pinyin 2"
=====================悲悯的分割线=====================
没错,只是一行调用junction的代码。
Junction,除了软件搬家,当然还有其他的用武之地。例如:云同步软件只能同步一个指定的目录及其子目录,我们可以创建目录链,将需要同步的目录,链接到该目录。
提示:
1) 若无法转移目录,在任务管理器结束相关进程即可;
2) junction工具只是在 NTFS 驱动器中创建和删除 junction 目录,自身并不会驻留内存占用系统资源,执行完毕会立即退出;
3) junction仅支持NTFS。FAT32转换为NTFS磁盘分区,以目标分区盘符为C示例:”convert c:/fs:ntfs”(不含引号);
4) 写调用junction的命令行,若路径包含空格,则需在路径前后加英文引号(参考示例);
5) 三个镜像下载链接均包含了调用junction的示例命令行,可作参考。
下载地址:官方网站
我拙劣的文字,不可能承载太多变革的期望,甚至无法改变一个人的软件使用习惯。如果能给你带来一点充实,也就够了。
除非注明,Hugo博客文章均为原创,转载请以链接形式标明本文地址。
本文地址:http://xinhugo.blog.163.com/blog/static/1679793632011102155344524/
解压缩软件:各具特色的压缩软件
文件对比工具:各具特色的文件对比工具
相关阅读:
评论