2010-05-13 7 views
1

J'ai un répertoire de fichiers image et j'ai besoin d'un script php ou d'un script shell qui va les renommer, créer une structure de répertoires imbriqués, puis insérer chaque image dans un emplacement spécifié dans la hiérarchie du répertoire. Idéalement, je voudrais juste spécifier un répertoire parent pour chaque fichier et un répertoire parent pour chaque répertoire et il le construirait. Et puis finalement, j'ai besoin du script pour compresser le tout.Création d'une structure de fichiers/dossiers et zippage?

Il n'y a probablement pas de classe php existante qui fera tout ça pour moi, mais si quelqu'un connaît une classe php ou un autre script disponible en ligne qui gérerait beaucoup de cette logique, ce serait génial.

+0

Pourquoi a-t-il besoin d'être PHP? Vous faites de la gestion de fichiers - appeler un script shell serait probablement plus rapide et plus facile. – dnagirl

+0

Un script shell serait bien. Je ne connais que PHP, donc ma capacité à modifier un script shell peut être limitée. – makeee

+0

Dans Windoze, j'ai fait ce genre de chose avec un simple script shell NT (un/k/un fichier batch) et l'exe 7-zip de la ligne de commande. Je peux poster une démo ici si vous en avez besoin ... – ewall

Répondre

1

Je sais que pas PHP, mais vous pourriez vouloir enquêter sur quelque chose comme ceci:

un script shell pour renommer les fichiers (votre dialecte peut varier, mais les pages de manuel sont très utiles). Si tous les fichiers d'un répertoire particulier vont à un emplacement, quelque chose comme ce qui précède pourrait fonctionner. Essentiellement, il boucle dans le répertoire cible en obtenant les noms des fichiers qui ont une extension .jpg (ou autre). Ensuite, il prend ces noms, y compris leur chemin et sous-marins dans le nouveau chemin du répertoire et certains changements à la modification du fichier d'origine. J'ai utilisé , pour le séparateur dans la substitution, car échapper tous ces séparateurs de chemin est une douleur. Enfin, il copie l'ancien fichier dans le nouvel emplacement. Comme les besoins de votre répertoire sont probablement plus complexes que ne le permet un chemin codé en dur, vous pouvez inclure une ligne pour analyser votre chemin de fichier/nom de fichier et déterminer quel devrait être son chemin cible; et utilisez cela dans la substitution.

Un extrait de création d'une arborescence de répertoires peut être trouvé en une fois here.

Vous pouvez également décider que find est un meilleur ajustement pour cela que foreach car il peut descendre une structure de répertoire aussi loin que vous le souhaitez.

Questions connexes