・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 が増えているのがわかります。
・どうやってチェックしたか
コピー元がアーカイブなしのフォルダ構成で、確認しましたし、
コピー元がアーカイブ後のフォルダ構成でも確認しました。
なお、当然ですがコピー先は、アーカイブ化されていません。
これは、私のコーディングの間違いでしょうか?
それともライブラリに何か問題が・・・?