【发布时间】:2012-10-18 21:49:17
【问题描述】:
我正在用 C 编写一个程序,它基本上为给定的文件名列表创建一个存档文件。这与 linux 中的ar 命令非常相似。这是存档文件的样子:
!<arch>
file1.txt/ 1350248044 45503 13036 100660 28 `
hello
this is sample file 1
file2.txt/ 1350512270 45503 13036 100660 72 `
hello
this is sample file 2
this file is a little larger than file1.txt
但我在尝试从存档中提取文件时遇到了困难。假设用户想要提取file1.txt。想法是它应该获取文件名的索引/位置(在本例中为 file1.txt),跳过 58 个字符以到达文件的内容,读取内容,并将其写入新文件。所以这是我的问题:
1) 如何获取存档文件中文件名的索引/位置?请注意,不允许有重复的文件名,所以我不必担心有两个不同的问题。
2) 如何在读取文件时跳过多个字符(本例中为 58 个字符)?
3) 如何判断文件内容何时结束?即我需要它来阅读内容并在 file2.txt/ 标头之前停止。
【问题讨论】:
-
不清楚这里使用的是什么存档格式。那是存档文件的显示吗?或者它可能是另一个工具的显示?
-
是时候选择答案种类了?
-
存档文件是我发布的。它应该是这样设计的,我需要想办法从中获取信息。