IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraire un sous-dossier d'une archive


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Décembre 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Décembre 2019
    Messages : 67
    Points : 54
    Points
    54
    Par défaut Extraire un sous-dossier d'une archive
    Hello,

    Je cherche à dezipper une archive, non pas la totalité depuis son root, mais uniquement un sous-dossier quelle contient.

    Auriez-vous une idée de comment procéder ?

    J'ai tenté de compléter le paramètre d'ExtractTo avec le path du zip qui m'intéresse, mais ça ne fonctionne pas.

    Merci !



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
     
    $file='C:\Users\moi\Desktop\archive.zip';
    $path='C:\Users\moi\Desktop\TEST';
     
    $zip=new ZipArchive;
     
    $res=$zip->open($file);
     
    if ($res === TRUE)
    {
        $zip->extractTo($path,'SOUSDOSSIER');
        $zip->close();
        echo "Fichier $file extrait avec succès dans $path";
    } else {
        echo "Echec de l'extraction du fichier $file";
    }
     
    ?>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 200
    Points : 8 425
    Points
    8 425
    Billets dans le blog
    17
    Par défaut
    Il faut passer un tableau d'entrées à extraire.

    Ex. si tu veux récupérer uniquement le fichiers 5 et 6 du sous-dossier SOUSDOSSIER de ton .zip :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $zip->extractTo($destination, ['SOUSDOSSIER/fichier-5.txt', 'SOUSDOSSIER/fichier-6.txt']);

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Décembre 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Décembre 2019
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Merci Seb,

    Je me suis probablement mal exprimé, sorry.
    Avec un exemple: fichier.zip contient fichier.zip->A->B->fichier.dll.
    Je souhaiterais que le résultat de l'extraction soit B->fichier.dll et non pas tout le path depuis le root A->B->fichier.dll.
    En résumé, supprimer le root du zip qui est une coquille vide.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 200
    Points : 8 425
    Points
    8 425
    Billets dans le blog
    17
    Par défaut
    Je ne pense pas que ce soit possible avec ZipArchive::extractTo() qui conserve l'arborescence.

    Tu devras plutôt passer par ZipArchive::getFromName() ou ::getStream() qui te permettront de récupérer le contenu des fichiers visés au sein du zip, ensuite tu pourras l'écrire où tu veux.

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Décembre 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Décembre 2019
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Finalement j'ai extrait toute l'archive et j'ai fait des manipulations sur les directory résultants.

    Merci pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire un sous-répertoire d'une archive tar.gz
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 26/06/2017, 12h31
  2. Parcourir les sous dossiers en une seule fois
    Par callofduty dans le forum MATLAB
    Réponses: 19
    Dernier message: 18/01/2014, 19h44
  3. [DLL] Extraire un sous-ensemble d'une application
    Par DSGSLA dans le forum Windows
    Réponses: 9
    Dernier message: 23/03/2010, 09h28
  4. Récupérer les sous-dossiers d'une URL
    Par _56ka dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 23/12/2007, 02h56
  5. Réponses: 0
    Dernier message: 11/11/2007, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo