您的位置:首页 > 其它

用C读取指定文件的扩展名

2014-11-10 20:37 92 查看
用chkdsk命令检测磁盘后会将受损的文件修复后,放在一个文件夹里。然而修复后的文件文件名和扩展名统统丢失,只剩下一堆对用户毫无意义的序号。

如何区别这些文件呢?他们其中有视频有图片或者软件。

之前见过一款软件能“修复”特定扩展名的此种文件。

非常好奇,后来又从拖拉一些没有后缀或者后缀错误的文件到影音文件中,发现依然能识别,那么问题来了,识别信息可能就在目标文件里。

进一步的参照资料找到了答案。一般约定文件的前几个字节是扩展名。(文本文件显然不是)

最近在学PE结构,搞得头昏脑胀。转念想:为何不用已掌握的知识去熟悉一些东西呢?比如玩一下灵活的指针......

代码最终还是没有用到任何复杂的知识。

代码如下:

#include "stdio.h"

int main(int argc, char** argv)
{
	char** lujin = { 0 };//二级指针

	
	FILE *fp=NULL;
	

	char kzm[10] = { 0 };

	lujin = argv[1];

	//路径错误
	if (lujin==0)
	{
		printf("ERROR argv");
		getchar();

		return 1;
	}

	

	fp = fopen(lujin, "r");

	//读取错误
	if (fp == NULL)
	{
		printf("ERROR file");
		printf("%s", lujin);
		getchar();

		return 2;
	}

	fgets(kzm, 5, fp);//识别文件前(5—1)个字符当作扩展名
	printf("%s",kzm);
	getchar();

	fclose(fp);
	fp = NULL;

	return 0;

}
二级指针搞得有点昏。欠缺的东西最后还是得补回来呀。

使用方法是将待检测文件拖到我们的程序上。

列举一个例子:



PDF



RAR



二进制可执行文件(exe,dll,等等)



这个是什么?Lnk快捷方式。就是桌面上的链接。



被鉴定文件是jpeg文件。由于jpeg文件不单单使用前几个字节来描述自己,所以就成这样了。当然如果你看到这个结果还可能是别的什么文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐