发布网友 发布时间:2022-04-24 02:35
共1个回答
热心网友 时间:2022-04-29 09:30
文件扩展名是文件类型的标志,WinXP会依据扩展名赋予文件不同的图标,并可启动对应的关联程序对其进行相关操作。故而,修改扩展名会直接影响一个文件的正常使用,为此系统多会提出警告,让用户明白这是十分危险的操作,改扩展名对初学者似乎成了一个禁区。 抱着怀疑的态度,我进行了一番摸索,终于深刻领悟到,拘泥于传统的束缚,实为学习电脑知识的大敌。不知各位看了下面的剖析是否会有同感! 一、扩展名与文件格式 大家知道Win9X启动画面,可用启动盘根目录下Logo.sys文件生成,它原本是个BMP图片,只是改动一个字节后(为使画面底端滚动条动起来,将该文件第32h字节处的00h改成ECh),换了扩展名而巳。需指出的是,此文件并不受扩展名的*。不信你用任一款磁盘编辑器(如Hedit或Diskedit),打开Io.sys文件查找字串“Logo.sys” (如图1),将它改为“1234.123”,再把Logo.sys文件也重命名成1234.123,你会发现该画面依然能在启动时出现。由此可见,一些系统直接调用的文件,是不分扩展名的;且扩展名不同,并不代表文件格式不同,有些文件只需简单的改变扩展名,就能完成文件类型的转换。还可举出一些例子,如:Win98系统能用BMP图片做图标,无论把一个BMP图片改成什么扩展名,只要你仍指定用它做图标,保证没问题(ICO文件也是如此)。 其实有的文件类型,如:SYS类型,并无固定的文件格式。同样Msdos.sys在旧版DOS中是二进制文件,而到了Win9X下便成为文本文件了。还有的类型原本就是同一种格式,只是换了扩展名而巳。如:SCR类型(屏幕保护程序),它可是地道的可执行文件。改一个SCR文件扩展名为EXE试试,运行它将打开屏保设置对话框(如果有的话),若在命令行加上“/S”参数便能运行此屏幕保护了。把它放在自己的软件中来调用(有些程序设计软件只能调用EXE类型文件),定会增色不少! 必须着重提一笔的是TXT类型(纯文本),诸如BAT、INI、INF、HTM、HTT等许多常见而重要的文件类型都是纯文本格式。更多的例子不胜枚举,以至我已养成一种习惯,只要碰到有不明用途的小文件(64KB以下),总喜欢用记事本打开看看。这些类型的文件都有一些比较规则的排列布局,以及特定的关键字串。平时注意多观察多研究,往往能找出其中的规律和关键字的用法,从而使自己拥有一条深入学习软件并挖掘软件潜力的捷径。 还是举个实例:刚装Win98时,任务栏的[快速启动]组中有个[显示桌面]图标,后来无意间被我删掉了。经过研究,发现其本质也是文本格式。打开记事本,编辑如图2所示的一段内容: 用扩展名SCF存盘,便又有了个[显示桌面]图标。同理,再找几个SCF文件,也许你会有更多的发现。 二、扩展名与文件类型 系统是按文件类型确定关联程序的。这里所说的“文件类型”,是指[文件夹选项]中[文件类型]栏列出的各个项目。随着Windows日渐深入人心,必须更新一个传统认识上的误区:扩展名与文件类型划等号。虽然常规方法只能建立二者之间一一对应的关系,但通过注册表这个“后门”,却总会有些特例。 在注册表中,扩展名和文件类型名是HKEY_CLASSES_ROOT主键(以下简称HKCR)下的同一级主键,扩展名主键的默认值正是其对应的文件类型主键名。一般来说,同一文件类型能对应多个扩展名,如[JPEG文件]类型有JPG、JPE、JPEG等扩展名;[文本文档]类型有TXT、EXC、DIC等扩展名(如图3);此外还有[HTML文件]、[MPEG文件]等类型均是如此。 产生这种现象的原因,大部分是出于兼容性的考虑。而同一时刻,一个扩展名对应的文件类型却是唯一的,说“同一时刻”是因为并非一个扩展名只能对应一种文件类型。很多随系统安装一起注册的扩展名,被其它程序改变其所属类型后,仍保存着原类型记录,当新类型被卸载后,它还可自动恢复。 典型的例子:在安装ACDSee32后,你可以从选项中自动把JPG图片重新注册为[ACDSee JPG Image]类型,这时打开注册表将会看到HKCR\.jpg主键下多了个UndoClass主键(如图4),默认值还是jpegfile(原类型主键名)。 特殊情况下没有对应扩展名照样也能注册文件类型。例如:[文件夹]类型和[驱动器]类型,它们都