[ad_1]
.DAT ファイルから 5 つのファイルを抽出するプログラムを C# で作成しています。 元のファイルとその拡張子 (.pdf、.tif、.txt、および 2 つの .docx ファイル) が参照用にコンピューターに保存されています。
私の質問は、たとえば .pdf のような特定のファイルが存在して終了し、別のファイルが開始するタイミングをどのように知ることになっているのですか? 私は .DAT ファイルの 16 進数バージョンを見て、その特定の部分を見つけて参照し、それが .pdf ファイルであることを知りたいと考えていました。 これが正しいかどうかはわかりません。そのため、ファイルがいつ終了して開始されるかを理解するのに助けが必要です。 手でそこに行って 16 進数を数え、異なるファイルに関して実際に何を表示するかを確認する必要がありますか? それは面倒に思えるかもしれませんが、私がしなければならない場合はそうします。
これを行う方法について何かアイデアがある場合は、詳しく教えてください。
私が試したこと:
私はこれまで、ファイル データをバイトから 16 進数に、またはその逆に変換するコードを作成してきました。
解決策 1
コードでこの .DAT ファイルを作成している場合、ソース ファイルからバイトをコピーして .DAT ファイルに追加することはできません。 追加する「ファイル」ごとに、.DAT ファイルに書き込まれるバイト数を追跡する必要があります。 含まれている各ファイルの先頭と末尾の .DAT ファイルへのオフセットなどを追跡しています。おそらく、元のファイル名、バイト単位のサイズ、その他追跡したいものなど、他のメタデータも追跡しています。
ファイルの追加が完了し、このインデックスを作成したら、そのインデックスを .DAT ファイルに書き込む必要があります。
ああ、ファイルを読み返したい場合は、コードでインデックスを読み取って、.DAT ファイルの内容と、.DAT ファイル内の各ファイルの開始位置と終了位置を伝える必要があります。
[ad_2]
コメント