2

我想知道 tar 文件中存在的 html 文件的文件类型。我已将 tar 文件存储在缓冲区中,并且我知道我可以知道位置缓冲区 [124] 处文件的大小,但我想知道是 - (1.) 我想知道 tar 中的文件是否是HTML 文件 ?? 知道该怎么做吗?我认为我可以知道文件形式的链接指示器(但我不确定)。谁能解释一下如何做到这一点?

(2.) 如果我确定 tar 文件中有 html 文件,那么我想将这些 html 文件的内容保存在 tar 文件中。

tar 文件中还存在许多其他文件(不仅是 html 文件-请注意这一行,所以我不知道 html 文件的位置)

知道如何实现这一目标吗?

4

2 回答 2

0

@ Joachim thanks for your suggestion finally i have done it the code is as below you can see if you want -

char* StartPosition;

    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);

and it can work for every file stored in tar file . we just need to put the file extension (.html in my case) and this code will give us its contents.

于 2013-07-29T16:17:46.133 回答
0

啊,你是说typeflag领域。不,不是针对那种文件类型,而是要判断文件是普通文件、目录、硬链接、软链接、设备特殊文件等。

您的系统(如果它符合 POSIX)应该有一个包含这些标志的<tar.h>系统头文件(通常在 中)。/usr/include或者您可以查看官方 POSIX 规范

于 2013-07-29T07:52:16.820 回答