linux 下从文件内容来识别一个文件类型的实例
来源:互联网 发布:linux查看进程对应程序 编辑:程序博客网 时间:2024/05/22 12:42
file-4.26.tar.gz 这是包 可以从
http://www.sfr-fresh.com/unix/misc/file-4.26.tar.gz/
网上下载
可以确定一个文件的类型
但要安装上面的包
// example
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <magic.h>
#include <iostream>
#include <QDebug>
#include <QtGui>
#include <QtCore>
using namespace std;
void type(const QString &path);
int main(int argc,char* argv[])
{
/* struct magic_set *pms = NULL;
// const char* result = NULL;
// const char* filePath = NULL;
pms = magic_open(MAGIC_MIME_TYPE);
if (pms == NULL)
{
(void)fprintf(stderr, "ERROR opening MAGIC_NONE: out of memory/n");
return 0;
}
if (magic_load(pms, NULL) == -1) //***************
{
(void)fprintf(stderr, "ERROR loading with NULL file: %s/n", magic_error(pms));
}
if(argc==2 && argv[1]!=NULL)
{
if ((result = magic_file(pms, argv[1])) == NULL) //***************
{
(void)fprintf(stderr, "ERROR loading file %s: %s/n",argv[1],magic_error(pms));
}
(void)printf("%s: %s/n", argv[1], result);
}
else
{
puts("USAGE---run file----testing filePath/n");
}
*/
type("/scratchbox/media/mmc2/music");
return 0;
}
void type(const QString &path)
{
struct magic_set *ms = NULL;
// const char* result = NULL;
// const char* filePath = NULL;
ms = magic_open(MAGIC_MIME);
if (ms == NULL)
{
(void)fprintf(stderr, "ERROR opening MAGIC_NONE: out of memory/n");
return;
}
if (magic_load(ms, NULL) == -1) //***************
{
(void)fprintf(stderr, "ERROR loading with NULL file: %s/n", magic_error(ms));
}
//*************************
QDir dir(path);
const char* result = NULL;
foreach (QFileInfo fileInfo,dir.entryInfoList(QDir::Files))
{
qDebug() <<"filePath=" << fileInfo.filePath();
if(ms)
{
if ((result = magic_file(ms, fileInfo.filePath().toStdString ().c_str() )) == NULL)
{
(void)fprintf(stderr, "ERROR loading file %s/n",magic_error(ms));
}
(void)printf("%s/n",result);
printf("/n");
}
}
foreach (QString subDir,dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
type(path + QDir::separator() + subDir);
}
if(ms)
{
magic_close(ms);
}
}
http://www.sfr-fresh.com/unix/misc/file-4.26.tar.gz/
网上下载
可以确定一个文件的类型
但要安装上面的包
// example
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <magic.h>
#include <iostream>
#include <QDebug>
#include <QtGui>
#include <QtCore>
using namespace std;
void type(const QString &path);
int main(int argc,char* argv[])
{
/* struct magic_set *pms = NULL;
// const char* result = NULL;
// const char* filePath = NULL;
pms = magic_open(MAGIC_MIME_TYPE);
if (pms == NULL)
{
(void)fprintf(stderr, "ERROR opening MAGIC_NONE: out of memory/n");
return 0;
}
if (magic_load(pms, NULL) == -1) //***************
{
(void)fprintf(stderr, "ERROR loading with NULL file: %s/n", magic_error(pms));
}
if(argc==2 && argv[1]!=NULL)
{
if ((result = magic_file(pms, argv[1])) == NULL) //***************
{
(void)fprintf(stderr, "ERROR loading file %s: %s/n",argv[1],magic_error(pms));
}
(void)printf("%s: %s/n", argv[1], result);
}
else
{
puts("USAGE---run file----testing filePath/n");
}
*/
type("/scratchbox/media/mmc2/music");
return 0;
}
void type(const QString &path)
{
struct magic_set *ms = NULL;
// const char* result = NULL;
// const char* filePath = NULL;
ms = magic_open(MAGIC_MIME);
if (ms == NULL)
{
(void)fprintf(stderr, "ERROR opening MAGIC_NONE: out of memory/n");
return;
}
if (magic_load(ms, NULL) == -1) //***************
{
(void)fprintf(stderr, "ERROR loading with NULL file: %s/n", magic_error(ms));
}
//*************************
QDir dir(path);
const char* result = NULL;
foreach (QFileInfo fileInfo,dir.entryInfoList(QDir::Files))
{
qDebug() <<"filePath=" << fileInfo.filePath();
if(ms)
{
if ((result = magic_file(ms, fileInfo.filePath().toStdString ().c_str() )) == NULL)
{
(void)fprintf(stderr, "ERROR loading file %s/n",magic_error(ms));
}
(void)printf("%s/n",result);
printf("/n");
}
}
foreach (QString subDir,dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
type(path + QDir::separator() + subDir);
}
if(ms)
{
magic_close(ms);
}
}
- linux 下从文件内容来识别一个文件类型的实例
- 从一个简单的实例来了解PE文件
- Linux下C语言使用popen获取一个文件的内容小实例
- linux下如何识别ntfs文件类型的硬盘
- linux下,用c语言编程,实现从一个文件读取内容到另一个文件,可以在文件的不同位置修改文件内容,并保存。
- LINUX下的文件类型
- linux下各种颜色的文件表示的文件类型
- linux下各种颜色的文件表示的文件类型
- Linux下的文件类型及文件后缀名详解
- 从文件夹目录下导入所有指定文件类型的数据内容到数据库表
- linux下文件类型的获取
- linux下的文件类型简介
- 一个linux下修改文件权限的实例
- Linux下 文件权限与文件类型
- 通过窗体输入的内容来新建一个xml文件
- Windows下自定义文件类型如何双击打开,如何双击文件后都在一个实例中打开
- 利用Python编写一个程序 统计当前目录下的每个文件类型的文件数目
- windows和linux是如何识别文件类型的?
- 微软面试题---阶乘问题
- 微软资深经理人的项目管理经验
- vxWorks的config.h注释
- 为.NET程序批上WPF的绚丽外衣
- 如何让WPF与你的架构相适合
- linux 下从文件内容来识别一个文件类型的实例
- ss
- 杨过和小龙女的故事
- 如何把Vim变成source insight(通过ctags)。
- 痛并快乐着
- 一个月了,纪念下死去的小馒头
- 在jasperreport中使用applet进行客户端打印以及jre在局域网中的自动安装
- C#中的委托和事件
- c++程序中的延时处理