博客專欄

EEPW首頁 > 博客 > 文件查找(c語言 findfirst函數(shù),findnext函數(shù))

文件查找(c語言 findfirst函數(shù),findnext函數(shù))

發(fā)布人:電子禪石 時(shí)間:2022-12-23 來源:工程師 發(fā)布文章
文件查找(c語言 findfirst函數(shù),findnext函數(shù))


long _findfirst( char *filespec, struct _finddata_t *fileinfo ); 
返回值:
如果查找成功的話,將返回一個(gè)long型的唯一的查找用的句柄(就是一個(gè)唯一編號)。這個(gè)句柄將在_findnext函數(shù)中被使用。若失敗,則返回-1。 
參數(shù):
filespec:標(biāo)明文件的字符串,可支持通配符。比如:*.c,則表示當(dāng)前文件夾下的所有后綴為C的文件。 
fileinfo :這里就是用來存放文件信息的結(jié)構(gòu)體的指針。這個(gè)結(jié)構(gòu)體必須在調(diào)用此函數(shù)前聲明,不過不用初始化,只要分配了內(nèi)存空間就可以了。
函數(shù)成功后,函數(shù)會把找到的文件的信息放入這個(gè)結(jié)構(gòu)體中。

int _findnext( long handle, struct _finddata_t *fileinfo ); 
返回值:
若成功返回0,否則返回-1。 
參數(shù):
handle:即由_findfirst函數(shù)返回回來的句柄。 
fileinfo:文件信息結(jié)構(gòu)體的指針。找到文件后,函數(shù)將該文件信息放入此結(jié)構(gòu)體中。

int _findclose( long handle );
返回值:成功返回0,失敗返回-1。
參數(shù): handle :_findfirst函數(shù)返回回來的句柄。 
大家看到這里,估計(jì)都能猜到個(gè)大概了吧?先用_findfirst查找第一個(gè)文件,若成功則用返回的句柄調(diào)用_findnext函數(shù)查找其他的文件,當(dāng)查找完畢后用,用_findclose函數(shù)結(jié)束查找。恩,對,這就是正確思路。下面我們就按照這樣的思路來編寫一個(gè)查找C:\WINDOWS文件夾下的所有exe可執(zhí)行文件的程序。
#include <stdio.h>
#include <direct.h>
#include <stdlib.h>
const char *to_search="C:\\WINDOWS\\*.exe"; //欲查找的文件,支持通配符 
int main() { 
long handle; //用于查找的句柄
struct _finddata_t fileinfo; //文件信息的結(jié)構(gòu)體 
handle=_findfirst(to_search,&fileinfo); //第一次查找 
if(-1==handle)return -1; printf("%s\n",fileinfo.name); //打印出找到的文件的文件名 
while(!_findnext(handle,&fileinfo)) //循環(huán)查找其他符合的文件,知道找不到其他的為止 

printf("%s\n",fileinfo.name); 

findclose(handle); //別忘了關(guān)閉句柄
system("pause");
return 0; 
}


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: c

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉