操作目录重要函数

  • avio_open_dir()
  • avio_read_dir()
  • avio_close_dir()

    操作目录重要结构体

  • AVIODirContext

操作目录的上下文

  • AVIODirEntry

目录项。用于存放文件名,文件大小等信息

  1. #include <libavutil/av_laog.h>
  2. #include <libavformat/avformat.h>
  3. int main()
  4. {
  5. int ret = -1;
  6. AVIODirContext *ctx = NULL;
  7. AVIODirEntry *entry = NULL;
  8. av_log_set_level(AV_LOG_INFO);
  9. ret = avio_open_dir(&ctx, "./", NULL);
  10. if (ret < 0) {
  11. av_log(NULL, AV_LOG_ERROR, "can not open dir:%s\n", av_err2str(ret));
  12. goto END;
  13. }
  14. while (1) {
  15. ret = avio_readdir(ctx, &entry);
  16. if (ret < 0) {
  17. av_log(NULL, AV_LOG_ERROR, "can not readdir :%s\n", av_err2str(ret));
  18. goto END;
  19. }
  20. if (!entry) { //读到目录尾
  21. break;
  22. }
  23. av_log(NULL, AV_LOG_INFO, "%ld %s\n", entry->size, entry->name);
  24. avio_free_directory_entry(&entry);
  25. }
  26. END:
  27. avio_close_dir(ctx);
  28. return 0;
  29. }
  30. 编译:
  31. gcc -lavutil -lavformat