我想知道tar文件中存在的html文件的文件类型。我已将theis tar文件存储在缓冲区中,我知道我可以知道位置缓冲区[124]中文件的大小,但我想知道的是 - (1.)我想知道如果tar中存在的文件是HTML文件?知道怎么做吗?我想我可以知道链接指示器的文件形式(但我不确定)。任何人都可以解释一下如何做到这一点??
(2。)如果我确定我在tar文件中有html文件,那么我想在tar文件中查看这些html文件的内容。
tar文件中还有很多其他文件(不仅是html文件 - 请注意这一行,所以我不知道html文件的位置)
任何想法如何实现这个?
答案 0 :(得分:0)
啊,你的意思是typeflag
字段。不,它不是那种类型的文件类型,它是告诉文件是常规文件,目录,硬链接,软链接,设备专用文件等。
您的系统(如果它符合POSIX)应该有一个包含这些标志的<tar.h>
系统头文件(通常在/usr/include
中)。或者你可以看到official POSIX specification。
答案 1 :(得分:0)
@ Joachim感谢您的建议,最后我已经完成了代码,如下所示,您可以看看 -
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);
它可以用于存储在tar文件中的每个文件。我们只需要放置文件扩展名(在我的情况下为.html),这段代码将为我们提供内容。