Historique des modifications - Message

Message #7953

Sujet: Décompresser un fichier zip


TypeDateAuteurContenu
Dernière modification12-02-2010 12:25:56xapantu
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 à touswink
Création du message12-02-2010 12:24:30xapantu
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 à touswink

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
304 invités en ligne
membre en ligne: -
RSS Feed