私は現在、基本的な仮想ファイルシステムアーカイブ(圧縮なし)用の抽出プログラムを作成しています。ofstreamを使用してディレクトリを自動的に作成する方法
ファイルが存在しないディレクトリに書き込まれたときに、抽出プログラムで問題が発生しています。
抽出機能:
void extract(ifstream * ifs, unsigned int offset, unsigned int length, std::string path)
{
char * file = new char[length];
ifs->seekg(offset);
ifs->read(file, length);
ofstream ofs(path.c_str(), ios::out|ios::binary);
ofs.write(file, length);
ofs.close();
cout << patch << ", " << length << endl;
system("pause");
delete [] file;
}
ifs
はlength
は、ファイルの長さとpath
で、offset
は、ファイルが起動する値であり、VFSルートファイルであるファイルからの値であるオフセットを保存するものでlenなど
たとえば、pathはdata/char/actormotion.txtです。
ありがとうございました。
、それだけでファイルを書き込むためだ以下の2つのソリューションがあります。 'boost'で任意のプラットフォーム上にディレクトリを作成するための良いラッパーがあります。 – stefan
@WhozCraigこのアーカイブには、異なるディレクトリに20,000個のファイルがあるので、難しいでしょう。 –