博客專欄

        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)閉
        主站蜘蛛池模板: 道真| 青州市| 同仁县| 新晃| 冕宁县| 新沂市| 上思县| 顺义区| 大同市| 郧西县| 雅安市| 荔浦县| 海口市| 珠海市| 郁南县| 德庆县| 丽水市| 新沂市| 甘肃省| 平乐县| 遂川县| 涞水县| 屏边| 衡南县| 上杭县| 隆化县| 灵川县| 常州市| 井研县| 双城市| 德阳市| 台湾省| 兴山县| 龙江县| 长乐市| 高唐县| 岳阳市| 韶关市| 台山市| 永顺县| 韶山市|