Historique des modifications - Message

Message #7954

Sujet: Décompresser un fichier zip


Type Date Auteur Contenu
Création du message 12-02-2010 12:30:47 Hawk
Un buffer, c'est un terme très générique qui peut désigner beaucoup de choses. En gros, c'est juste un tableau de données. (version très simplifiée) Tampon, c'est effectivement le nom qu'on donne aux buffers informatiques en français, mais bon, je trouve ça moche, j'appelle ça des buffers.
http://fr.wikipedia.org/wiki/M%C3%A9moire_tampon
CF le dernier paragraphe.

Je pense qu'un truc qui pourrait marcher ce serait :

Code c++ :


//Récupère le FileSystem
IFileSystem*  pfs = device->getFileSystem();
//Ajoute ton archive
pfs->addZipFileArchive("zip.zip"); //Attention au chemin
//Récupère ton archive
IFileArchive * zipfile = pfs->getFileArchive(0);
//Récupère le premier fichier de ton archive
IReadFile* fichierlu = zipfile->createAndOpenFile("monfichierlu.txt");
if (fichierlu)
{
	u32 size = fichierlu->getSize(); //La taille du fichier
	//Création du buffer
	char* buffer = new char[size];
	//Lecture du fichier
	fichierlu->read((void*) buffer, size);
	//On créé le fichier à écrite
	IWriteFile* fichierecrit = pfs->createAndWriteFile("chemin/monfichierecrit.txt");
	if (fichierecrit)
	{
		//Ecriture
		fichierecrit->write((void*) buffer, size);
		//Libération mémoire
		fichierecrit->drop();
	}
	//On libère la mémoire, très important
	delete[] buffer;
	buffer = 0;
	fichierlu->drop();
	
}


Je ne suis pas sûr à 100%, mais je pense que ce code va chercher le fichier "monfichierlu.txt" dans ton archive, et va l'écrire dans le répertoire "chemin", sous le nom "monfichierecrit.txt". Evidemment, tu peux garder le même si tu veux. Après pour faire ça pour tous les fichiers de ton zip, avec une boucle for, et les index des fichiers, ça devrait se faire.

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