如何知道tar文件的内容

时间:2013-07-13 22:43:20

标签: tar

我必须澄清有关tar文件的一个疑问。即使这个文档对我有很大帮助(How to parse a tar file in C++)....

但仍有一些问题要问..有没有办法知道" FileType"在.tar文件中。在你给定的数据中,我们只有文件的内容。但是假设我想只得到任何.html文件的特定文件(如果存在于tar文件中)。那么有什么方法可以做到这一点吗? ??

我知道我需要处理文件类型(在我的情况下是.html)..我怎么知道如果tar文件中存在任何.html文件?

2 个答案:

答案 0 :(得分:1)

@David我已经完成了你可以看到下面的代码如果你愿意这样做 -

char* StartPosition;
    //char *check;
    size_t skip= 0;
    char HtmlFileContents [200000];
    char contents [8000];
    do
    { 
            int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
            size_t distance= ((SizeOfFile%512) ? SizeOfFile + 512 - (SizeOfFile%512) : SizeOfFile );
            skip += distance + 512;
            memcpy(contents,&buffer[skip],100);
            if (StartPosition=strstr(contents,".html"))
            {
                MessageBox(m_hwndPreview,L"finally string is copied",L"BTN WND6",MB_ICONINFORMATION);
                int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
                memcpy(HtmlFileContents,&buffer[skip+512],SizeOfFile);
                break;
            }


    }
    while(strcmp(contents,".html") != NULL);

现在我们可以使用该文件的文件扩展名来获取html文件或任何我们希望的文件。我的代码将复制该文件的内容,并可以存储在HtmlFileContents中(在我的情况下 - 根据您的意愿,它可能是任何内容)。

答案 1 :(得分:0)

坦率地说,我可能会解析并解析“tar -tvf tarfile.tar”的结果,而不是从头开始编写tar解析器。然后,您可以处理结果,搜索您尝试识别的文件。