首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用libarchive读取目录

用libarchive读取目录
EN

Stack Overflow用户
提问于 2014-08-15 22:09:09
回答 1查看 1.4K关注 0票数 2

我有一个C++程序,我想从磁盘上读取一些描述的归档文件。我想以一种大致类似树的形式重建它,以反映磁盘上的结构(不支持符号链接/硬链接之类的古怪内容)。

当读取下一个标题时,很明显可以检查条目类型,看看它是目录还是文件。不清楚的是,如果它是一个目录,接下来会发生什么。archive_read_next_header是否以BFS/DFS的方式自动执行完整的树遍历?还是应该递归地创建新的archive_entry结构并调用一些尚未找到的函数来遍历目录条目?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-18 17:45:23

一般来说,归档文件是文件和目录条目的平面序列。归档格式通常不指定所需的顺序。有些存档格式隐含地要求目录条目存在,但有些则根本不需要它们。在前一种情况下,隐式要求来自归档实用程序,如果文件应该位于的目录不存在,则在提取文件时会出现故障。这意味着要么需要在存档的早期位置为该目录提供一个条目来创建它,要么需要在实用程序运行之前就存在该目录。其他存档实用程序,如tarzip,只需创建缺少的目录。

换句话说,目录条目只代表目录本身,而不是它们的内容。在一般情况下,当您在文件和目录条目的名称中发现目录节点时,您应该准备好在树中创建目录节点。您需要遍历树以找到每个文件都应该附加到的节点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25334905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档