我正在尝试获取 tar 文件中存在的 html 文件的内容(我正在使用 Visual C++ 来完成我的任务)。我的方法是使用流将 tar 存储在缓冲区中,然后将 html 的内容存储在另一个缓冲区中。然后使用缓冲区转到位置缓冲区 [0-100] 的 tar 文件中存在的每个文件的文件名(在此位置我们有文件名)并将文件名存储在“内容”中(在我的情况下)并搜索它是否有 extension.html 文件?
如果文件名中有.html,则从位置缓冲区存储其内容[PreviousFileSizes +512](通过 PreviousFileSizes 我的意思是在此 html 文件之前有一些文件,因此我们必须将它们的大小添加到缓冲区索引中到正确的位置——我的意思是我不假设 tar 文件中的第一个文件是 html 文件——在我的代码中,我用“skip”表示这个 PreviousFileSizes——这意味着要跳过这么大的大小才能转到我们的 html 文件)。
我实现它的代码是-
int skip=0;
char contents [100];
//char test[1000];
do
{
int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
size_t distance= ((SizeOfFile%512) ? SizeOfFile + 512 - (SizeOfFile%512) : SizeOfFile );
size_t skip= distance +512;
memcpy(contents,&buffer[skip],100);
}
while(strstr(contents,".html") != NULL);
我走对了吗??如果我的逻辑有问题,请纠正我?