如何用c语言判断一个未知文件的文件类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用c语言判断一个未知文件的文件类型相关的知识,希望对你有一定的参考价值。

当一个文件的后缀被删除或者被更改后如何判断他原来的文件类型?……我想把文件按十六进制打开然后从特征代码中找,但是不知道怎么实现

打开文件容易,读几个字符容易,判断类型较难。
下面程序判断 .exe .jpg .gif 格式
读入的前20个字节在 char s[20] 中。
你愿意把它看成10进制,16进制都可以。

输入形式:
可执行程序名 要判断的文件名
例如:
ccalb.exe file.gif

#include <stdio.h>
#include<stdlib.h>

main(int argc, char *argv[])
FILE *fin;
char namein[80];
char s[20];
if (argc<2)
printf("Usage: \007 %s filename\n",argv[0]);
return 0;

strcpy(namein,argv[1]);
fin = fopen(namein,"rb");
if (!fin)
printf("Open %s error\n",namein);
return 0;

fread(s,20,1,fin);
fclose(fin);

if (s[0]=='M' && s[1]=='Z') printf("It is .exe file\n");
else if (s[6]=='J' && s[7]=='F' && s[8]=='I' && s[9]=='F')printf("It is .jpg file\n");
else if (s[0]=='G' && s[1]=='I' && s[2]=='F' ) printf("It is .gif file\n");
else printf("other file");
return 0;
参考技术A 上网搜把,不同文件都有自己的结构体追问

就是搜不到才来问的

如何用php把一个未知结构的数组写入到一个文本文件,

如何用php把一个未知结构的数组写入到一个文本文件,然后从文本文件再恢复出来!

参考技术A // 文件名称
$cache_file = dirname(__FILE__).'/data.txt';
$data = array(5=>5,9=>8);
// 创建数据文件写入信息
$cache_handle = fopen($cache_file,'w+');
$result = fwrite($cache_handle,serialize($data));
fclose($cache_handle);
// 读取数据文件内容输入
$cache = file_get_contents($cache_file);
print_r(unserialize($cache));本回答被提问者采纳

以上是关于如何用c语言判断一个未知文件的文件类型的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言实现,读取两个文件数据,然后比较两个数据,如果有不同,转换类型并输出???

如何用C语言取出文件的后缀

如何用C语言打开一个文件?

根据文件头数据判断文件类型

如何用c语言打开一个文件

如何用C语言监视一文件,(可以隔一定时间检测该文件),当文件相比较上一时间有改动时,读出改动处