Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Archivage // Desarchivage Besoin d'une idée.

Je me retrouve bloqué avec quazip. j'ai bien ma lib en static mais cela ne marche pas (pleins de symptômes). quand j'essaie d'incorporer ma lib avec QLibrary (debug, release, static), Qt ne la veut pas.
Essayons d'oublier tout cela, j'ai testé un sacré paquet de combinaisons et aucunes ne débouchent (je ne trouverais pas la solution).
La question qui reste est donc : voyez-vous un moyen pour archiver//desarchiver des fichiers avec une application en static ?? N'importe quoi me va !

Réponses

  • Salut
    Perso j'utiliserai QProcess + zip/unzip en ligne de commande
  • 2 Aug modifié
    Je vois cela !!! Je n'y avais pas pensé et c'est jouable .... Merci !
    J'ai regardé aussi QZip ??
    https://github.com/nezticle/qtcompress
    Difficile de trouver les sources, mais tu en penses quoi ? (Avant d'y passer 3 jours).
    D'autres choses ?
    Merci encore @babaOroms
  • Tu peux effectivement utiliser une lib que tu incluerais à ton projet.
    À toi de voir ce qui te conviens le mieux.
  • Désolé, mais je n'ai toujours pas trouvé de solution.
    J'ai regardé QProcess mais pas d'outil dans le CMD de windows, Gzip ne gère qu'un seul fichier, pour 7-zip il faut l'avoir installé avant ...
    Je n'arrive à inclure aucune lib. En static cela demande des compétences que je n'ai pas.
    Il vous reste des idées ?
  • slt,
    voici de quoi potasser






    et les sources :
    http://www.voidrealms.com/index.php?r=tutorial/index
  • J'y suis !
    J'avais regardé une bonne partie de ces vidéos mais pas le site :\">
    Avec ZipReader // ZipWriter, les sources du site, et la vidéo an Français, j'arrive à compiler en static :-bd
    Merci @loupium !!!
    Si je n'abuse pas trop, il me reste une dernière question mais technique cette fois :
    Apparement, la fonction extractAll ne fonctionne qu'avec un seul fichier archivé (je peux me tromper).
    Et je n'arrive pas à écrire une fonction de décompression :
    void DecompressTest(QString ZipFile)
    {
    ZipReader cZip(ZipFile);
    foreach(ZipReader::FileInfo item, cZip.fileInfoList())
    {
    qDebug() << item.filePath;
    if(item.isDir)
    {
    QDir().mkpath(item.filePath);
    }
    if(item.isFile)
    {
    QFile file(item.filePath);
    file.open(QIODevice::WriteOnly);
    file << item. ?????????????
    }
    }
    }
    Savez vous comment faire pour récupérer le fichier en lui même dans l'archive, je ne trouve pas ?
  • Salut,

    Peut-être regarder du côté de libzip et zlib qui doivent permettre de générer des fichiers zippés.

    Cordialement
  • 7 Aug modifié
    J'ai trouvé comment écrire la fonction :
    	foreach(ZipReader::FileInfo item, cZip.fileInfoList())
    {
    if(item.size == 0)////////////////////////////////////////////////////////////item.isDir
    {
    qDebug()<<"Dir";
    if(!QDir(SingleFile).mkdir(item.filePath.mid(0,item.filePath.size() - 1)))
    {
    qDebug()<<"!QDir().mkpath(SingleFile + item.filePath";
    }
    }
    if(item.size > 0)///////////////////////////////////////////////////////////item.isFile
    {
    qDebug()<<"File";
    QFile file(SingleFile + item.filePath);
    if (!file.open(QIODevice::WriteOnly))
    qDebug()<<"!file.open(QIODevice::WriteOnly";
    file.write(cZip.fileData(item.filePath));
    file.close();
    }
    }
    J'ai juste un problème car isDir et isFile ne fonctionne pas.
    C'est peut-être car j'ai dezipper une archive compressée par Windows.
    Je passe en résolu si c'est bien cela.
Connectez-vous ou Inscrivez-vous pour répondre.