Ramses Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 Bonjour à toutes et à tous,Voilà j'ai des fichiers temporaires à supprimer. quand j'utilise ce bout de code ça marche pas. (vl-file-delete "C:\\Log-file\\fich-log*.dwg") mes fichiers portent les noms de fich-log-1 fich-log-2est-ce à cause de l'étoile? et que faire donc? et merci
Bred Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 Salut,si tu en as que 2, fait le 2 fois. Conseil : utilise la fonction findfile pour tester l'existence du fichier. Si tu en as plus, récupère les noms de fichiers du répertoire avec vl-directory-files qui accepte les "*" Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Ramses Posté(e) le 10 avril 2009 Auteur Posté(e) le 10 avril 2009 Merci Bred,je n'ai pas que deux fichiers. vl-directory-files est très bonne et comment je fais pour les supprimer? un à un en traitant la liste ou je peux les effacer d'un seul coup?
Bred Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 un à un.je ne vois pas autrement. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
bonuscad Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 Avec un foreach (pour chaque élément de la liste) (foreach n (vl-directory-files "c:/chemin/" "*.dwg" 1) (vl-file-delete (strcat "c:/chemin/" n))) Remplacer "c:/chemin" par ce qui convient. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Patrick_35 Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 Salut (defun del(dir / fso) (setq fso (vlax-create-object "scripting.filesystemobject")) (vlax-invoke-method fso 'deletefile dir :vlax-true) (vlax-release-object fso) (princ) ) Exemple(del "c:/test/*.*") ps : Attention, les fichiers sont effacés définitivement. On ne les retrouvent pas dans la corbeille. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 Re,vlax-create-object "scripting.filesystemobject" :casstet: t'as trouver ça où ?merci. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Ramses Posté(e) le 10 avril 2009 Auteur Posté(e) le 10 avril 2009 Merci pour vous tous c'est super.Et si je veux exécuter ce code, quand l'utilisateur appuira sur la touche "echap", sans être obligé de redefinir de fonction *error*, est-ce qu'il y a une solution, sinon c'est pas grave. merci merci merci [Edité le 10/4/2009 par Ramses]
(gile) Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 Salut, Bred, vois ici. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 10 avril 2009 Posté(e) le 10 avril 2009 merci ! :) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Ramses Posté(e) le 12 avril 2009 Auteur Posté(e) le 12 avril 2009 Salut,Encore une question svp sur la fonction vl-directory-filesdans mon chemin j'ai les 3 fichiers #1AAA. dwg et #2AAB.dwg et #A3AA.dwg (vl-directory-files "c:/chemin/" "#*.dwg" 1) donne("#1AAA.dwg" "#2AAB.dwg" "#A3AA.dwg") je veux sélectionner les deux fichiers seulement c à dire contenant # + 1 chiffre + AA + 1 lettre je fais ceci (vl-directory-files "c:/chemin/" "`##`A`A*.dwg" 1) ca donne nil pourquoi? cette fonction ne reconnait pas les caractères génériques autres que *? merci
(gile) Posté(e) le 12 avril 2009 Posté(e) le 12 avril 2009 Salut, (vl-directory-files "c:/chemin/" "`##AA*.dwg" 1) Pas testé. PS : cet exemple montre qu'il est préférable de ne pas utiliser de caractères spéciaux dans les noms de fichiers Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Ramses Posté(e) le 12 avril 2009 Auteur Posté(e) le 12 avril 2009 salut gile,ça donne aussi nil. est-ce un rapport avec une variable système?je continue de chercher
(gile) Posté(e) le 13 avril 2009 Posté(e) le 13 avril 2009 Salut, Il semble que vl-directory-file n'accepte pas tous les caractères génériques.Je ne pense pas que ce soit modifiable avec une variable système.Tu peux toujours faire une sélection plus fine avec wcmatch sur la liste retournée par vl-directory-file : (vl-remove-if-not '(lambda (x) (wcmatch x "`##AA*")) (vl-directory-files "C:\\chemin" "*AA*" 1) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Ramses Posté(e) le 13 avril 2009 Auteur Posté(e) le 13 avril 2009 ça marche nickel.merci beaucoup gile.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant