・DXライブラリ
を用いています。
・やりたいこと
DXアーカイブ内のファイルを、DXアーカイブ外にコピーしようとしています・
・やったこと
↓に作ったソースコードを示します。
void copyFromDXTo(string oldPath,string newPath){ int fileSize = FileRead_size(oldPath.c_str());//DXアーカイブ内ファイルのサイズ所得 int fileHandle = FileRead_open(oldPath.c_str());//DXアーカイブ内ファイルのハンドル取得 char *buf = new char[fileSize];//バッファ作成 FileRead_read( buf, fileSize, fileHandle);//読み込み FileRead_close(fileHandle);//閉じる ofstream ofs;//出力用意 ofs.open(newPath.c_str());//開く ofs.write((const char*)buf ,sizeof(char)*fileSize);//バッファ書き込み ofs.close();//閉じる。 int newFileSize = FileRead_size(newPath.c_str()); }関数終了直前のローカルデータ
・fileSize 6012
・newFileSize 6013
・何が問題か
DXアーカイブ内にある、コピー元のファイルと、コピー後のファイルが一致しません。
どう一致しないかというと、新しいファイルが、なぜか1バイト増えています。
しかも増えている場所が最初や最後ではなく、途中でです。
画像を、ごらんになってください。
バイナリエディタで比較したものです。
途中で 0D が増えているのがわかります。
・どうやってチェックしたか
コピー元がアーカイブなしのフォルダ構成で、確認しましたし、
コピー元がアーカイブ後のフォルダ構成でも確認しました。
なお、当然ですがコピー先は、アーカイブ化されていません。
これは、私のコーディングの間違いでしょうか?
それともライブラリに何か問題が・・・?