Chinaunix

标题: 查找文件不通过文件名 [打印本页]

作者: SybaseLU    时间: 2008-12-17 19:29
标题: 查找文件不通过文件名
想通过匹配文件的内容来查找文件,但是如果音乐,视频或图片这样的文件,如何通过文件的内容来匹配文件呢?

也不是匹配什么,就想不通过文件名的方式来查找某个文件,因为在特殊环境下,同一个文件名可以在不同的
driver中,这样的话就无法唯一识别某个文件了,当然这里仅仅举例子
作者: yylogo    时间: 2008-12-17 19:33
不会,我认为最好的办法就是通过后缀名来找
如果是内容的话,你找电脑一遍,估计半年时间找不玩哦(夸张Ing)
作者: Fixend    时间: 2008-12-17 19:37
一个一个文件地system("file xxxx...." ).
作者: 5毛党党员    时间: 2008-12-17 19:39
可以先按文件名查找,之后再内容匹配。。。。
作者: yylogo    时间: 2008-12-17 19:40
3楼,有什么办法可以直接将dos中获取的东西转到C里面来?
个人认为应该是不能的吧。。
应该要用到>将内容存到文件里,再在C里面读取才可以吧?

[ 本帖最后由 yylogo 于 2008-12-17 19:42 编辑 ]
作者: yylogo    时间: 2008-12-17 19:42
而且在system执行完之后就应该已经找完了,哪里容有执行C的地方?
当然,可以用system("...call *.exe...");
但是太麻烦了吧
作者: 5毛党党员    时间: 2008-12-17 19:42
原帖由 yylogo 于 2008-12-17 19:40 发表
楼上,有什么办法可以直接将dos中获取的东西转到C里面来?
个人认为应该是不能的吧。。
应该要用到>将内容存到文件里,再在C里面读取才可以吧?

windows下也能用popen吧?
作者: yylogo    时间: 2008-12-17 19:43
楼上,请你教我popen怎么用。
学习Ing....:wink: :wink:
我是新手.
作者: scutan    时间: 2008-12-17 19:49
grep ?
作者: Fixend    时间: 2008-12-17 19:51
直接写一个shell脚本算了,
LZ去shell版问吧。
作者: 5毛党党员    时间: 2008-12-17 19:53
原帖由 yylogo 于 2008-12-17 19:43 发表
楼上,请你教我popen怎么用。
学习Ing....:wink: :wink:
我是新手.

名字记错了 是_popen,下面是msdn的例子
// crt_popen.c

/* This program uses _popen and _pclose to receive a
 * stream of text from a system process.
 */


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

int main( void )
{

&nbsp;&nbsp;&nbsp;char   psBuffer[128];
&nbsp;&nbsp;&nbsp;FILE   *pPipe;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Run DIR so that it writes its output to a pipe. Open this
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* pipe with read text attribute so that we can read it
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* like a text file.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/


&nbsp;&nbsp;&nbsp;if( (pPipe = _popen( "dir *.c /on /p", "rt" )) == NULL )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit( 1 );

&nbsp;&nbsp;&nbsp;/* Read pipe until end of file, or an error occurs. */

&nbsp;&nbsp;&nbsp;while(fgets(psBuffer, 128, pPipe))
&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(psBuffer);
&nbsp;&nbsp;&nbsp;}


&nbsp;&nbsp;&nbsp;/* Close pipe and print return value of pPipe. */
&nbsp;&nbsp;&nbsp;if (feof( pPipe))
&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf( "\nProcess returned %d\n", _pclose( pPipe ) );
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf( "Error: Failed to read the pipe to the end.\n");
&nbsp;&nbsp;&nbsp;}
}

作者: yylogo    时间: 2008-12-17 20:28
哦,谢谢..
作者: SybaseLU    时间: 2008-12-17 23:43
标题: 回复 #10 Fixend 的帖子
How does grep command can retrieve context of non-text files like PNG, MP3, or MP4?
作者: Fixend    时间: 2008-12-17 23:59
原帖由 SybaseLU 于 2008-12-17 23:43 发表
How does grep command can retrieve context of non-text files like PNG, MP3, or MP4?


grep只支持文本文件。
你先回答我,对于PNG,你用什么作为key来查找?
你只能用某种方式来标记这个PNG,而且是可读的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2