illcyt 发表于 2013-11-7 20:59:04

【请教】如何实现图形文件名加前后缀

本帖最后由 illcyt 于 2013-11-7 21:10 编辑

    做设计改图是难免的,对于文件管理是十分重要的,实时确保更新文件能够被快速的找到的一个好办法是用时间去命名文件,也确实有大师写过这样的程序【存为今天】,程序执行可达到
    1、在图纸路径下新建文件夹“bak”
    2、将当前图纸拷贝一份至bak
    3、原文件的文件名加上以今天日期作为后缀
下图为作者演示效果:
执行前:


执行后:


    但是由于有时候文件名比较长,上述程序添加日期后往往显示不出来,默认为此处省略xx字如下图所示:

由于水平有限,故来请教各位大侠,能否自定义给一个图形文件加前后缀,这样对于查看就方便不少,或给出实现这一个功能的思路,非常感谢!

以下为【存为今天】---【它山之石作品】供大家参考:默认解压密码:www.tstmr.com



llsheng_73 发表于 2013-11-8 09:43:40

为什么不能考虑给你的文件夹加一个后缀,把文件存到那里去?这样也相当于备份了,也不至于文件名长得太离谱?

自贡黄明儒 发表于 2013-11-8 09:52:40

(vl-file-renameold-filename new-filename)

illcyt 发表于 2013-11-8 10:54:28

自贡黄明儒 发表于 2013-11-8 09:52 static/image/common/back.gif
(vl-file-renameold-filename new-filename)
(vl-file-renameold-filename new-filename)的方法试了一下,并不能改正在打开的图纸

对于未打开或为未被占用的图纸是可以执行操作的

如何实现能对当前打开的图纸进行操作呢。。

感觉是save as

自贡黄明儒 发表于 2013-11-8 10:57:08

illcyt 发表于 2013-11-8 10:54 static/image/common/back.gif
(vl-file-renameold-filename new-filename)的方法试了一下,并不能改正在打开的图纸

对于未打开或为 ...

你是对的,但那个可以批量改名

illcyt 发表于 2013-11-8 11:49:06

自贡黄明儒 发表于 2013-11-8 10:57 static/image/common/back.gif
你是对的,但那个可以批量改名
按照saves as的思路简单写了个,可以实现加上日期做前缀
(vl-load-com)
(defun Test_Save_today ( / old_filename new_filename new_Path cmdecho_bak FILEDIA_bak)
    (setq old_filename (getvar "dwgname"))
    (setq new_filename(strcat "["(menucmd "M=$(edtime,$(getvar,date),YYYY.MO.DD)") "]" old_filename ))
    (setq new_Path (strcat (getvar "DWGPREFIX") new_filename))
    (setq cmdecho_bak (getvar "cmdecho"))
    (setq FILEDIA_bak (getvar "FILEDIA"))
    (setvar "cmdecho" 0)
    (setvar "FILEDIA" 0)
(command "_saveas" "" new_Path)
    (setvar "cmdecho" cmdecho_bak)
    (setvar "FILEDIA" FILEDIA_bak)
(princ"\n图形按日期命名成功!")
(princ)
)


清风明月名字 发表于 2013-11-8 21:18:56

谢谢众位坛友代码分享!

zj20190405 发表于 2021-4-17 22:02:17

illcyt 发表于 2013-11-8 11:49
按照saves as的思路简单写了个,可以实现加上日期做前缀

大哥,你这个保存第二次,时间会一直重叠
页: [1]
查看完整版本: 【请教】如何实现图形文件名加前后缀