Historique des modifications - Message

Message #8213

Sujet: Décompresser un fichier zip


Type Date Auteur Contenu
Création du message 25-04-2010 16:11:17 Magun
je voie pas ou est le problème o.O'
ses pas bien compliquer tout de même ... bref

je test pas mais logiquement sa donne un truc dans le genre :

Code c++ :

IFileSystem*  pfs = device->getFileSystem();
pfs->addZipFileArchive("MAJ.zip");

IFileArchive * zipfile = pfs->getFileArchive(0);
const IFileList *fileList = zipfile->getFileList();
unsigned int nbxFile = fileList->getFileCount();

for(unsigned int i = 0; i<nbxFile; i++)
{
  if(fileList->isDirectory(i))
  {
    const char* cmd = "mkdir "; // linux
    strcat(cmd,fileList->getFullFileName(i));
    system(cmd);
  }
  else
  {
    IReadFile* file = zipfile->createAndOpenFile(i);
    u32 size = file->getSize();
    char* buffer = new char[size];
    file->read((void*)buffer,size);
    IWriteFile* fichierecrit = pfs->createAndWriteFile(fileList->getFullFileName(i));
    fichierecrit->write((void*) buffer, size);
    fichierecrit->drop();
    delete[] buffer;
    file->drop();
  }
}

zipfile->drop();
pfs->drop();


a savoir que si tu a un fichier de 1Go dans ton archive le buffer seras de 1Go donc ses pas bien ta soluce, il vaut mieux utiliser iostream et écrire en "streaming" ( read n buffer size, write n buffer size )
ps : pitié trop de commentaire qui ne servent pas quoi ... :}

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
144 invités en ligne
membre en ligne: -
RSS Feed