1

tarファイルに関する 1 つの疑問を解消する必要があります。

しかし、まだ質問することがあります..tarファイルの「FileType」を知る方法はありますか。ここであなたが与えられたデータには、ファイルの内容があります..しかし、.htmlファイルのような特定のファイルのみを取得したい場合(tarファイルに存在する場合)..それを行う方法はありますか? ??

ファイルタイプ(私の場合は.html)を処理する必要があることはわかっています..tarファイルに.htmlファイルが存在するかどうかをどのように知ることができますか??

4

2 に答える 2

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 に保存できます (私の場合は、希望に応じて何でもかまいません)。

于 2013-07-29T16:06:04.480 に答える
0

率直に言って、tar パーサーをゼロから作成するよりも、"tar -tvf tarfile.tar" の結果を殻から取り出して解析する方がよいでしょう。次に、識別しようとしているファイルを検索して結果を処理できます。

于 2013-07-13T22:59:41.697 に答える