jak pominąć plik wewnątrz pliku tar, aby uzyskać określony plik
staram się pobrać zawartość pliku HTML, który jest obecny w pliku tar (używam wizualnego c ++ do wykonania mojego zadania). moim podejściem jest przechowywanie taru w buforze przy użyciu strumienia, a następnie zapisanie zawartości html w innym buforze. Następnie użyj bufora przechodząc do nazwy pliku każdego pliku obecnego w pliku tar w buforze lokalizacji [0-100] (w tym lokalizacja, w której mamy nazwę pliku) i przechowuj nazwę pliku w „treści” (w moim przypadku) i wyszukaj, jeśli ma plik extension.html?
Jeśli ma w nazwie plik .html, zapisz jego zawartość z bufora lokalizacji [PoprzednieFileSizes +512] (przez PreviousFileSizes mam na myśli, że przed plikiem html znajdowały się jakieś pliki, więc musimy dodać ich rozmiary w indeksie bufora, aby przejść do poprawnej lokalizacji - mam na myśli, że nie zakładam, że pierwszym plikiem w pliku tar jest plik html - w moim kodzie oznaczam ten rozmiarFilePrzez „przeskocz” - oznacza to tyle, że pomijam, aby przejść do naszego pliku html).
mój kod do osiągnięcia tego jest
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);
mam rację? Popraw mnie, jeśli w mojej logice jest coś złego?