私はファイルスプリッターとマージのアルゴリズムを開発していましたが、ファイルを元の拡張子(ファイル形式)にマージする方法(分割)の問題に遭遇しました。分割ファイルの最初のチャンクの先頭にファイル形式を書き込むことを考えています(つまり、ファイルを3つのファイルに分割した場合は、ファイル形式を1.bijファイルに保存します)。このアイデアは機能しますか?もっと良いアイデアを知っていますか?私と共有してください。
ありがとう
ユーザーにコマンドライン引数を使用してファイル名を選択させてみませんか?-o
コマンドラインオプションを使用できます。-
ユーザーがファイル名を使用して標準出力にリダイレクトできるようにするためのボーナスポイント。その後、彼は別のツールでパイプすることができました。例えば:merger -o - part*.bin | tar zxvf -
分割された各ファイルのヘッダーを完全なファイル名とともに含めることができますが、たとえば、元のサイズ、チェックサムなどを含めることもできます。
編集:バイナリストリームにテキストを書き込む方法
fstream f(/* initialize*/);
std::string s = "asdf";
// Store the size of text
auto size = s.size();
f.write(&size, sizeof(size));
// Store the string itself
f.write(s.c_str(), s.size());