Teraz piszę ekstraktor dla podstawowego archiwum systemu plików wirtualnych (bez kompresji).Jak automatycznie tworzyć katalogi za pomocą strumienia danych
Mój ekstraktor napotyka problemy podczas zapisywania pliku w katalogu, który nie istnieje.
Extract funkcja:
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
jest plik korzeń VFS, offset
jest wartością po uruchomieniu pliku, length
jest długość pliku i path
to wartość z pliku co zapisać przesunięcia len itp
Na przykład ścieżka to data/char/actormotion.txt.
Dzięki.
nie jest to możliwe z 'std :: ofstream', to tylko do zapisu plików. Prawdopodobnie istnieje dobre opakowanie do tworzenia katalogów na dowolnej platformie w 'boost'. – stefan
@WhozCraig będzie to trudne, ponieważ archiwum to miało 20 000 plików w różnych katalogach. –