Şimdi bir temel sanal dosya sistemi arşivi (sıkıştırma olmadan) için bir ayıklayıcı yazıyorum.Dizinleri otomatik olarak kullanarak nasıl oluşturulur
Ayıklamacı, bir dosyayı varolmayan bir dizine yazdığında sorunlara yol açıyor.
Özü fonksiyonu:
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
dosya uzunluğu, dosya başladığında offset
değerdir vfs kök dosyasıdır ve path
kazancınız dosyasından bir değer kaymalarını len vb olduğunu
Örneğin, yol data/char/actormotion.txt'dir.
Teşekkürler.
, sadece dosyaları yazmak için var altında iki çözümü vardır. Muhtemelen 'destek' için keyfi bir platformda dizinler oluşturmak için iyi bir sarmalayıcı vardır. – stefan
@WhozCraig zor olacak çünkü bu arşivde farklı yönlerde 20 000 dosya vardı. –