博客專欄

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

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

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


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

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

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

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

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


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: c

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 公安县| 临沂市| 秀山| 汉川市| 淅川县| 独山县| 息烽县| 应用必备| 牡丹江市| 蕲春县| 武陟县| 乃东县| 黄山市| 乌兰察布市| 左云县| 宜兴市| 泸州市| 富宁县| 融水| 岳西县| 同德县| 博罗县| 通河县| 枣庄市| 哈尔滨市| 唐海县| 银川市| 北票市| 安岳县| 新宾| 饶河县| 蓝田县| 大兴区| 耒阳市| 娄烦县| 正蓝旗| 姜堰市| 五峰| 合作市| 耒阳市| 新乡市|