Historique des modifications - Message

Message #7953

Sujet: Décompresser un fichier zip


Type Date Auteur Contenu
Dernière modification 12-02-2010 12:25:56 xapantu
Bon bah c'est bon ça marche :
s32 IFileSystem_copyFileToFile(IWriteFile* dst, IReadFile* src)
{
  char buf[1024];
  const s32 sz = sizeof(buf) / sizeof(*buf);

  s32 r, rx = src->getSize();
  for (r = 0; r < rx; /**/)
  {
    s32 w, wx = src->read(buf, sz);
    for (w = 0; w < wx; /**/)
    {
      s32 n = dst->write(buf + w, wx - w);
      if (n < 0)
        return -1;
      else
        w += n;
    }
    r += w;
  }

  return r;
}

dans une fonction :
IrrlichtDevice * device = irr_driver->getDevice();
IFileSystem*  pfs = device->getFileSystem();
//Ajoute ton archive
pfs->addZipFileArchive("zip.zip"); //Attention au chemin
//Récupère ton archive
IFileArchive * fs = pfs->getFileArchive(0);
IReadFile* srcFile = pfs->createAndOpenFile("fileOnZip");
IWriteFile* dstFile = pfs->createAndWriteFile("fileOnDisk.txt");

if (IFileSystem_copyFileToFile(dstFile, srcFile) < 0)
; // error

srcFile->drop();
dstFile->drop();

Merci à tous wink
Création du message 12-02-2010 12:24:30 xapantu
Bon bah c'est bon ça marche :
s32 IFileSystem_copyFileToFile(IWriteFile* dst, IReadFile* src)
{
  char buf[1024];
  const s32 sz = sizeof(buf) / sizeof(*buf);

  s32 r, rx = src->getSize();
  for (r = 0; r < rx; /**/)
  {
    s32 w, wx = src->read(buf, sz);
    for (w = 0; w < wx; /**/)
    {
      s32 n = dst->write(buf + w, wx - w);
      if (n < 0)
        return -1;
      else
        w += n;
    }
    r += w;
  }

  return r;
}

dans une fonction :
IrrlichtDevice * device = irr_driver->getDevice();
IFileSystem*  pfs = device->getFileSystem();
//Ajoute ton archive
pfs->addZipFileArchive("zip.zip"); //Attention au chemin
//Récupère ton archive
IFileArchive * fs = pfs->getFileArchive(0);
IReadFile* srcFile = pfs->createAndOpenFile("fileOnZip");
IWriteFile* dstFile = pfs->createAndWriteFile("fileOnDisk.txt");

if (IFileSystem_copyFileToFile(dstFile, srcFile) < 0)
; // error

srcFile->drop();
dstFile->drop();

Merci à tous wink

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
155 invités en ligne
membre en ligne: -
RSS Feed