修改文件名的时候不小心把扩展名也修改了,而且文件数量很多,请问如何判断每个文件的原始扩展名是什么?????

解决方案 »

  1.   

    如 .exe 文件的开头两个字母通常是:MZ
       .bmp 文件的开头两个字母通常是:BM
       .zip 文件的开头两个字母通常是:PK
      

  2.   

    看你是改的什么了,文件也根本不存在到底属于哪类文件的问题。比如.txt文件,我照样可以把一堆类似二进制的字符放进去,而.exe文件里也照样可以有许多ASCII。只能说大概的判断一下。再比如说了,.txt、.ini、.bat等等都是文本格式,你到底改成什么啊,没办法判断的。
    你可以用任意一个十六进制编辑软件打开你的文件,看看类似哪类的(参考goomoo(古木) ( ))。如果那些文件是游戏需要的,那你就没多大希望了,比如我写的游戏,要读.tntd文件,那是我自己的定义的,根本不存在什么依据。
      

  3.   

    扩展名有什么合法之说?
    好象你爱给自己养的小强取个名字叫'River Core',很合法的,不是所有的'River Core'的开头字节都是‘3db’
      

  4.   

    “那不是要把所有格式的文件头都收集一下才可以吗(超麻烦)?”--是啊,而且这种方法只能是初步判断,并不准确。理论上要通过文件内容来得出文件的扩展名是不可能的,因为几乎每天都有新的扩展名的文件产生,还有相同的扩展名却文件类型完全不同,比如.dat,可能是二进制文件,也可能是文本文件,还有可能是VCD的视频文件。所以只能简单判断一下已经成为标准的扩展名的文件。