_findfirst和_findnext

Posted 牧马人夏峥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了_findfirst和_findnext相关的知识,希望对你有一定的参考价值。

1、首先是_finddata结构体,用于存储文件信息的结构体。

2、_findfirst函数:long _findfirst(const char *, struct _finddata_t *);

    第一个参数为文件名,第二个参数为_finddata结构体指针,若成功,则返回文件的句柄。

3、_findnext函数:int _findnext(long, struct _finddata_t *);

    第一个参数为文件句柄,表示读下一个。

4、_findclose()函数:int _findclose(long);

    将该文件句柄关闭

以下为一个小例子

 

void getFiles(string path, vector<string>& files)
{
    long hFile = 0;
    struct _finddata_t fileinfo;//存储文件信息的结构体
    string p;
    //c_str将string转为C下的字符,hFile得到的是文件句柄
    if ((hFile = _findfirst(p.assign(path).append("\\*.jpg").c_str(), &fileinfo)) != -1)
    {
        do
        {
            files.push_back(p.assign(path).append("\\").append(fileinfo.name));

        } while (_findnext(hFile, &fileinfo) == 0);
        _findclose(hFile);
    }
}

 参考:http://blog.sina.com.cn/s/blog_53988e5a0101dvlf.html

         http://blog.csdn.net/samylee/article/details/53467668

 

以上是关于_findfirst和_findnext的主要内容,如果未能解决你的问题,请参考以下文章

C语言遍历目录中的文件

opencv对图片进行批处理

解决Win10下_findnext()异常

C语言怎么读取某一文件夹下的所有文件夹和文件?

JAVA07_Stream流中FindFirst方法查找元素第一个

JAVA07_Stream流中FindFirst方法查找元素第一个