明经通道 发表于 2012-11-3 10:14:39

第八章 文件和目录函数

第八章 文件和目录函数
Visual LISP提供的最有用的函数是文件和目录函数。这些函数集可用于访问和修改文件属性,以及列出指定文件夹中的文件及文件夹。使用这些函数的一个例子,是将其用于对话框的列表框的环境中。

可能你喜欢在列表框中显示图纸文件清单,而不显示其扩展名(这样的名称会短一些)。就可结合目录列表框和vl_filename-base函数来实现,如下所示:
(mapcar ‘vl-filename-base (vl-directory-files pathname “*.dwg”))

这样将返回名称的列表,如(“图形1”“图形2”…)。注意在这个例子中并没有提供错误检查。如果(vl-directory-files)函数返回nil,其余的语句就会因出错而崩溃。该例只是用来证明这些函数是如何相结合并用于使文件和目录的信息更容易使用。

(vl-file-size filename)
以整数形式返回filename的字节数。如果没找到文件名,就返回nil。

参数:
Filename 字符串,指要查询文件的名称。

示例:
(vl-file-size “c:\\myfile1.txt”); 返回 125523 (大约 124 Kb)

(vl-file-copy source-filename target-filename )
从源位置(source-filename)复制文件到目标位置(target-filename)。如果append为非nil,同时目标文件存在,源文件就会被添加到已存在的目标文件。如果目标文件存在而append为nil,该文件将不被复制同时返回值为nil。如果成功,将返回整数值。

参数:
Source-filename 被复制文件的名称,如果文件不在默认的搜索路径中,则该文件名必须包含完整的路径位置。
Target-filename 源文件要复制到的目标名称。如果目标路径未指定,则使用默认的工作目录位置。
Append (可选)如果是非nil,代表如果目标文件存在,源文件将会被附加到目标文件上去。

示例:
(vl-file-copy “c:\\myfile1.txt” “c:\\mycopy.txt”)
(vl-file-copy “c:\\myfile2.txt” “c:\\mycopy.txt” T); 添加目录文件

(vl-file-delete filename)
删除文件名。如果成功返回T,否则返回nil。

参数:
Filename 字符串,指要删除的文件的名称。

(vl-file-rename old-name new-name)
重命名现有的文件,由old-name重命名为new-name。如果成功返回T,否则返回nil。

参数:
Old-Name 字符串,指现有文件的名称。
New-Name 字符串,指重命名后的文件名称。

(vl-file-directory-p filename)
如果filename是目录文件夹名称则返回T,如果filename实际上是一个文件或根本不存在,则返回nil。

(vl-file-systime filename)
返回文件最后修改的日期和时间值列表。返回的列表为(年 月 星期 日时 分 秒)的格式。

(vl-filename-base filename)
返回不带路径和扩展名返回基本文件名。

参数:
Filename 字符串,指文件名,可带或不带路径和扩展名。

示例:
(vl-filename-base “c:\\myfiles\\drawing1.dwg”)
返回“drawing1”
(vl-filename-base “drawing1.dwg”)
返回“drawing1”

(vl-filename-directory filename)
从指定的filename字符串返回目录或路径前缀值。

参数:
Filename 字符串,指包含路径的文件名。

示例:
(vl-filename-directory “c:\\dwgfiles\\working\\drawing1.dwg”)
返回: “c:\\dwgfiles\\working”

(vl-filename-extension filename)
返回给定文件名字符串的扩展名。

参数:
Filename 字符串,指文件名称。

示例:
(vl-filename-extension “c:\\myfiles\\drawing1.dwg”)
返回 “dwg”

(vl-filename-mktemp )
创建一个用于临时文件的独特文件名。返回代表文件名称的字符串,格式为:directory\base<XXX><.extension>。其中base多达5个字符,由pattern中取得,XXX是一个3字符的独特组合。

所有在VLISP会话中由vl-filename-mktemp生成的文件名都会在你退出VLISP会话时被删除。

参数:
Pattern 字符串,包含了文件名样式;如果nil或缺省,vl-filename-mktemp就用“$VL~~”。
Directory 字符串,临时文件目录的名称;如果nil或缺省,vl-filename-mktemp就在以下顺序中选择一个目录:
■如果在pattern已指定目录,就用它。
■在TMP环境变量中指定的目录。
■在TEMP环境变量中指定的目录。
■当前目录。
Extension 字符串,指定给文件的扩展名;如果nil或缺省,vl-filename-mktemp使用pattern中的扩展名部分(有可能是空字符串)。

示例:
(vl-filename-mktemp)
"C:\\TMP\\$VL~~004"
(vl-filename-mktemp "myapp.del")
"C:\\TMP\\MYAPP005.DEL"
(vl-filename-mktemp "c:\\acad2002\\myapp.del")
"C:\\ACAD2002\\MYAPP006.DEL"
(vl-filename-mktemp "c:\\acad2002\\myapp.del")
"C:\\ACAD2002\\MYAPP007.DEL"
(vl-filename-mktemp "myapp" "c:\\acad2002")
"C:\\ACAD2002\\MYAPP008"
(vl-filename-mktemp "myapp" "c:\\acad2002" ".del")
"C:\\ACAD2002\\MYAPP00A.DEL"

(vl-directory-files path pattern )
按照不同的模式,返回文件或子文件夹的列表。

参数:
Path 字符串,指要查询的路径名。
Pattern 字符串,指要查询文件。可以包含通配符。如果不指定或nil,则使用“*.*”
Mode (可选)整数。以下其中一个…
-1 = 只列出目录名
0 =列出文件及目录(未指定时的默认值)
1 =只列出文件

示例:
命令: (vl-directory-files “c:\\dwgfiles\\Working” “*.dwg”)
(“drawing1.dwg” “drawing2.dwg” . . .)
命令: (vl-directory-files “c:\\dwgfiles” nil -1)
(“.” “..” “Finished” “Working”)
命令: (vl-directory-files “c:\\dwgfiles” nil 1)
nil



http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 明经通道的微博

fayadetudou 发表于 2023-10-23 10:21:11

还不如直接用个网盘啥的   感觉压缩包拆分是不是解压有概率问题呀还不如直接用个网盘啥的   感觉压缩包拆分是不是解压有概率问题呀

丶吟游诗人灬 发表于 2023-4-8 16:41:27

关于文件及文件处理的函数接触的不少这章节感觉轻松不少

zjh2785 发表于 2017-10-12 15:36:07

这个是很实用的一些函数

微博评论 发表于 2012-11-3 11:36:42

收藏备用

http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 来自 娱六月明 的新浪微博

smartstar 发表于 2012-11-3 14:08:48

谢谢老大!

东北-水地暖-温 发表于 2012-11-6 08:00:51

本帖最后由 东北-水地暖-温 于 2012-11-6 08:28 编辑

老大,多谢!渐入佳境、登堂入室、越来越好!
希望能在动态绘图的grread等命令和反应器上多用笔墨哦!那才是绘图的乐之所在。

mccad 发表于 2012-11-6 08:45:23

东北-水地暖-温 发表于 2012-11-6 08:00 static/image/common/back.gif
老大,多谢!渐入佳境、登堂入室、越来越好!
希望能在动态绘图的grread等命令和反应器上多用笔墨哦!那才 ...
反应器是11章里有很详细的描述。
grread属于AutoLISP范畴。

东北-水地暖-温 发表于 2012-11-6 12:03:23

如果我写,就不拘于原著,而是从功能应用分类。学以致用嘛。

LIL5E 发表于 2012-11-27 21:29:24

看到第八章啦~学习了很多,在此表示感谢,尽管有些迟,老大您辛苦了。

LIL5E 发表于 2012-11-27 21:29:24

看到第八章啦~学习了很多,在此表示感谢,尽管有些迟,老大您辛苦了。

LIL5E 发表于 2012-11-27 21:30:38

看完啦第八章啦,学习了很多,在此表示感谢(尽管有些迟),老大您辛苦啦~谢谢

zyhandw 发表于 2012-11-29 08:58:51

学习中,真是好资料啊,老大辛苦了
页: [1] 2
查看完整版本: 第八章 文件和目录函数