J'aimerais vos idées pour le design, même si je pense avoir fait la majeure partie du boulot maintenant :
Par Syntax par [options] [archive à traiter] [liste de fichiers] Options -a,--add Ajoute les fichiers à l'archive. Crée l'archive si elle n'existe pas. Si l'archive existe en flash, elle est désarchivée et réarchivée à la fin. Défaut: - N'enregistre pas le chemin absolu des fichiers. - Si un fichier du même nom existe dans l'archive, renvoie une erreur. -e,--extract Désarchive les fichiers spécifiés dans la liste. Défaut: - Utilise le chemin absolu des fichiers s'il existe dans l'archive, sinon extrait dans le répertoire courant. - Désarchive les fichiers spécifiés dans la liste, sinon désarchive tous les fichiers. - Si un fichier à désarchiver existe déjà, renvoie une erreur. -r,--remove Détruit les fichiers dans une archive. Désarchive l'archive si elle est en flash et l'y remet à la fin. -l,--list Affiche des informations sur une archive et sur les fichiers contenus. Défaut: affiche les informations de tous les fichiers (nom, taille, type), sauf si une liste est spécifiée. -f,--flash Si on crée une archive, elle est mise en flash à la fin de l'opération. Si on extrait des fichiers, ils sont mis en flash au fur et à mesure. -s,--save-path Enregistre le chemin absolu des fichiers ajoutés à une archive. Si aucun path n'est spécifié pour un fichier, le répertoire courant est enregistré. -d,--dir <fld> Extrait les fichiers listés/tous les fichiers dans le répertoire fld, sans tenir compte de l'éventuel chemin enregistré. '.' signifie 'répertoire courant'. Défaut: - renvoie une erreur si le répertoire n'existe pas. -F,--force Ecrase les fichiers dans une archive quand on veut y ajouter un fichier déjà présent. Ecrase les fichiers existants quand on désarchive des fichiers. Crée automatiquement le répertoire fld de l'option -d si le répertoire n'existe pas. -c,--continue En cas d'erreur non fatale (fichier existant et pas d'option -f spécifiée, fichier inexistant, nom invalide etc...), ignore le fichier et passe au suivant. -v,--verbose Mode verbeux sur stdout. Défaut: - Par ne renvoie que les erreurs sur stderr. -h,--help Affiche une aide sur les différentes options. Notes - Les archives sont créées en RAM. - Les fichiers sont extraits en RAM. - Les fichiers sont ajoutés dans une archive sans information de path. - Les fichiers sont extraits en utilisant l'information de path si elle existe, sinon dans le répertoire courant. - Si --add/--extract/--remove/--list sont spécifiés, le dernier switch passé est utilisé, les autres ignorés. - Si des options incohérentes sont spécifiées (par exemple, --force quand on liste une archive), elles sont ignorées silencieusement.
Voilà, toutes vos idées et critiques sont les bienvenues.
Merci déjà à Zerosquare pour les siennes et la lecture de mon code (le programme est déjà capable de créer une archive, d'y mettre des fichiers, tout ce qui est chemin absolu ou non est géré, ainsi que les archivages/désarchivages nécessaires).
ps -> Je voudrais que Par signifie "PedroM Archiver". J'avais déjà fait ça pour Pexec, avant de me poser une question : quid d'utiliser un nom de programme dont je ne possède pas le copyright dans le mien ? PpHd saura sûrement me répondre.

ps2 -> Par utilise une petite lib perso, Pdtlib (~15 fonctions pour le moment), qui m'aide énormément à gérer de tels softs : trouver/créer/archiver/déasrchiver les fichiers, lire le fichier de configuration du soft au boot (system\par), mais aussi gérer la ligne de commande. L'API de la fonction qui le fait n'a pas changé depuis ce que j'ai écrit sur mon blog, pourtant elle gère maintenant les options longues et courtes de manière tout aussi simplissime pour le programmeur, merci à Zerosquare pour cette idée-là aussi.

Voilà, j'attends vos critiques.
