8791 sujets

Développement web côté serveur, CMS

Bien le bonjour, cher AlsaCréation Smiley smile ,
J'aurais souhaité faire un script pour pouvoir télécharger tous les fichiers et sous dossiers d'un dossiers, SAUF quelques fichiers (dont je connais le nom) qui sont dans quelques dossiers (je ne sais pas vraiment où ils sont, mais, ce que je peux faire est que je peux les supprimer avant de télécharger)

Donc mon idée serait de chercher tous les fichiers ayant le nom xxx dans un dossier et ses sous dossiers, puis de les supprimer.
Ensuite, je transforme tous mes fichiers en .tar.gz, avec un script (celui ci : http://www.phpconcept.net/pcltar/)
Puis je fais télécharger, ensuite je supprimer ce .tar.gz et je recréer les autres fichiers que j'avais supprimé (ce que je sais faire)

Donc mon problème serait : "Comment chercher les fichiers xxx.php dans le dossier xxx en incluant ses sous dossiers, et comment les supprimer" ?

Je serais vraiment très reconnaissant si vous pouviez m'aider Smiley biggrin
Salut

tu tar.gz mais tu n'es pas sous linux/unix ?

parce que sinon une seule ligne de commande suffirait. par exemple

find ./ -name "xx*" | xargs rm

ça serait radical. là tu effaces tous fichiers commençant par xx suivi par n'importe quoi (*)
dans tous le dossier ou t'es plus les sous-répertoires.

ceci dit attention cette commande effaces tous immédiatement sans demander aucune confirmation !! ni listing. peut-etre voir si y a pas des options plus sure.

sinon sous windows... je sais pas peut-être avec perl si tu connais.

et en php faudrait programmer un script .avec des fonctions comme opendir readdir
tu dois pouvoir naviguer dans le repertoire. unlink effaces des fichiers. le tout dans une fonction récursive?

Voila ce que je vois comme piste.

a part ouvrir tous les fichiers et les effacer un par un Smiley rolleyes Smiley cligne
Modifié par CPascal (21 Apr 2010 - 23:16)
Si le but de ton mic-mac est juste de générer une archive sans ces fameux fichiers, pourquoi ne pas tout simplement les exclure des fichiers archivés ? Tu pourrais archiver tes fichiers un par un, ça serait plus simple que d'effacer ce que tu ne veux pas, tout archiver, puis remettre ce que tu as effacé.
Merci, c'est bon pour éviter certains fichiers.

Mais comment je fait pour tout mettre en .zip, .rar ou .tar ou une autre extension d'archive ?

PS : Je suis sous Debian, et il faudrais que je puisse faire tout ça via PHP
Modifié par ApocKalipsS (02 May 2010 - 10:21)
a écrit :
Mais comment je fait pour tout mettre en .zip, .rar ou .tar ou une autre extension d'archive ?
PS : Je suis sous Debian, et il faudrais que je puisse faire tout ça via PHP

Pas de problème, il suffit d'installer et d'utiliser les extensions existantes :
- zip : Classe ZipArchive
- bz2 : bzopen, bzwrite, bzclose
- gz/zlib : gzopen, gzwrite, gzclose
- tar : ça doit sûrement exister, mais j'ai pas trouvé dans la doc
tar.gz/tgz : combinaison de tar et de gz
tar.bz2/tbz/tb2 : combinaison de tar et de bz2
7z : aucune idée si ça existe.... mais c'est un format libre, donc ça existe probablement.
- rar : c'est un format propriétaire, seule la décompression est possible. Pour compresser, il faut acheter le logiciel. Je ne sais pas ensuite s'il y a des API disponibles ou non, ni si ce logiciel est utilisable sous linux.
Modifié par QuentinC (03 May 2010 - 08:19)