【ffmpeg基础知识】ffmpeg操作目录实现list

打开文件夹:avio_open_dir()

读取文件夹:avio_read_dir()

关闭文件夹:avio_close_dir()

结构体, 操作目录的上下文:AVIODirContext()

目录项,用于存放文件名,文件大小等信息:AVIODirEntry()

include <libavutil/log.h>
#include <libavformat/avformat.h>

int main(int argc,char *argv[])
{
        int ret;
//文件上下文使用ctx进行连接
        AVIODirContext *ctx=NULL;
        AVIODirEntry *entry=NULL;
//设置错误显示等级
        av_log_set_level(AV_LOG_INFO);

        ret=avio_open_dir(&ctx,"./",NULL);
        if(ret < 0){ 
                av_log(NULL,AV_LOG_ERROR,"can not find dir %s\n",av_err2str(ret));
                return -1; 
        }
        while(1){
                ret = avio_read_dir(ctx,&entry);
                if(ret < 0){ 
                        av_log(NULL,AV_LOG_ERROR,"cant not find dir %s\n",av_err2str(ret));
//防止内存泄漏进行关闭
                        goto __fail;
                }
                if(!entry){
                        break;
                }
                av_log(NULL,AV_LOG_INFO,"%12"PRId64"%s \n",
                        entry->size,
                        entry->name);

                avio_free_directory_entry(&entry);
        }

__fail:
        avio_close_dir(&ctx);
        return 0;
}
原文地址:https://www.cnblogs.com/powercool/p/14438329.html