;;驱动器、目录、文件、和注册表
;;★★★01.获取并创建驱动器盘符组成的表★★★
(setq Drives (vlax-get-property (vlax-create-object "Scripting.FileSystemObject") "Drives")) ;;获取驱动器集合
(setq DrivesPathLst '()) ;;设定存储驱动器盘符路径的空表

(vlax-for tempt Drives ;;遍历驱动器集合获取驱动器路径属性并放入驱动器路径存储表中
    (setq DrivesPathLst (cons (vlax-get-property tempt "Path") DrivesPathLst))
)

(setq DrivesPathLst (reverse DrivesPathLst)) ;;表反转,以使起顺序为正确的C盘,D盘,E盘的顺序 返回 ("C:" "D:" "E:")

;;要点
;;驱动器路径的获取依赖于创建Scripting.FileSystemObject对象

;;★★★02.目录与文件全路径名操作★★★
(vl-directory-files "e:" "*.*" 0) ;;获取文件(包含扩展名)和目录
(vl-filename-base (getfiled "文件" "d:\\" "" 2)) ;;去掉文件路径和扩展名只去文件名"Setup1.2.1.1"
(vl-filename-directory (getfiled "文件" "d:\\" "" 2)) ;;返回路径 返回 "D:\\"
(vl-filename-extension (getfiled "文件" "d:\\" "" 2)) ;;返回扩展名 返回 ".zip"
(vl-file-size (getfiled "文件" "d:\\" "" 2)) ;;返回文件所占内存的大小Byte为单位
(vl-file-copy (getfiled "文件" "d:\\" "" 2) "e:\\1.doc");;将某文件复制为e盘下,名为1.doc (注意全路径和扩展名不可少)
(vl-file-directory-p "d:\\1") ;;指定字符串是不是存在的目录,存在则返回T,否则返回nil
(vl-file-systime "d:\\1.txt") ;;返回文件最后修改的时间 返回 (2015 1 6 24 14 33 38 796)
(vl-filename-mktemp "d:\\myapp.txt") ;;创建临时唯一文件名,引号中是文件模式,程序根据它创建,返回 "d:\\myapp004.txt"
(vl-mkdir "c:\\mydirectory");;创建目录

;;要点
;;文件名全路径中要么用\\分级要么用/分级
;;所谓文件名或者文件全路径都是字符串
;;上述函数都是对字符串的操作,对目录和文件名、文件扩展名的操作

;;★★★03.文件描述符与文件的读写操作★★★
;;文件的读
(setq filePath (getfiled "打开文件" "d:\\" "txt" 2)) ;;获取要打开的文件路径
(setq fileDescriptor (open filePath "r")) ;;根据文件路径以读的方式打开文件将值放入文件描述符变量中用于后面操作

(while (setq fileRowStr (read-line fileDescriptor)) ;;打印文件中每一行,每循环一次文件描述符就到下一个读取到的位置,遇文件结束符返回nil结束
    (print fileRowStr)
)

(close fileDescriptor) ;;打开的文件记得关闭(用文件描述符关闭)

;;文件的写
(setq filePath (getfiled "打开文件" "d:\\" "txt" 2)) ;;获取要打开的文件路径
(setq fileDescriptor (open filePath "w")) ;;根据文件路径以写的方式打开文件将值放入文件描述符变量中用于后面操作

(setq i 1)
(repeat 9 ;;循环按顺序写入1到9的数字到文件中
    (princ (itoa i) fileDescriptor)
(setq i (1+ i))
)

(close fileDescriptor) ;;打开的文件记得关闭(用文件描述符关闭)

;;转义符与特殊字符
一些字符需要使用转义符来表示其本来的符号,比如引号" 和 转义符号\ ,注意斜杆/不需要用转义符号来修饰,而转义符号需要用两个反斜杆 \\ 表示一个斜杆\ 见下表:

向文件中写入:(setq str_filePath (vl-registry-read "HKEY_CURRENT_USER\\Test-Helchan" "new"))
(princ"(setq str_filePath (vl-registry-read \"HKEY_CURRENT_USER\\\\Test-Helchan\" \"new\"))\n" fileDescriptor)  
后面的\n是换行,表示下一次就从下一行继续写。

;;获取拖拽插件后获得的目录路径
(print)
(setq 上次命令行 (getvar "LASTPROMPT"))
(print 上次命令行)

;;要点
;;文件的读写都依赖于文件描述符
;;文件描述符指向文件的位置随读和写操作移动

;;★★★04.注册表的读写操作★★★
;;在HKEY_CURRENT_USER中创建一个目录Test-Helchan
(vl-registry-write "HKEY_CURRENT_USER\\Test-Helchan")

;;在"HKEY_CURRENT_USER\\Test-Helchan"目录中创建文件"new"
(vl-registry-write "HKEY_CURRENT_USER\\Test-Helchan" "new")

;;在"HKEY_CURRENT_USER\\Test-Helchan"目录下的"new"文件中写入值"123"
(vl-registry-write "HKEY_CURRENT_USER\\Test-Helchan" "new" "123")

;;读取"HKEY_CURRENT_USER\\Test-Helchan"目录下"new"文件中的值
(vl-registry-read "HKEY_CURRENT_USER\\Test-Helchan" "new")

;;删除"HKEY_CURRENT_USER\\Test-Helchan"目录下"new"文件
(vl-registry-delete "HKEY_CURRENT_USER\\Test-Helchan" "new")

;;删除"HKEY_CURRENT_USER\\Test-Helchan"目录
(vl-registry-delete "HKEY_CURRENT_USER\\Test-Helchan")

;;列出指定注册表目录下级的名称组成的字符串表
(vl-registry-descendents "HKEY_CURRENT_USER")

------end------

【Visual Lisp】驱动器、目录、文件和注册表的更多相关文章

  1. 【读书笔记】C#高级编程 第二十四章 文件和注册表操作

    (一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...

  2. x64系统的判断和x64下文件和注册表访问的重定向——补记

    原来的地址 x64系统的判断和x64下文件和注册表访问的重定向(1) x64系统的判断和x64下文件和注册表访问的重定向(2) x64系统的判断和x64下文件和注册表访问的重定向(3) 之前在(3)里 ...

  3. 删除Oracle文件、注册表

    用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下: 1. 开始->设置->控制面板-& ...

  4. MFC学习 文件操作注册表操作

    c读写文件 void CFileView::OnRead() { FILE *pFile = fopen("1.txt", "r"); /*char ch[10 ...

  5. 【Visual Lisp】人机交互与数据处理(表除外)-lisp

    ;;本专题所讲述的内容是人机交互以及常规数据处理技术;;★★★01.人机交互★★★;;△△△键盘输入交互△△△(getint "请输入整数");;从键盘输入整数,如果不是整数则重复 ...

  6. 获取Host文件权限 注册表导入

    Windows Registry Editor Version 5.00 ;取得文件修改权限 [HKEY_CLASSES_ROOT\*\shell\runas] @="管理员权限" ...

  7. Inno setup complier将文件添加注册表

    [Registry] Root: HKCR; Subkey:.; ValueType: string; ValueName: ; ValueData:"264file" Root: ...

  8. 如何用.reg文件操作注册表

    Windows Registry Editor Version 5.00 ;删除值 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpi ...

  9. C++ 执行 cmd 命令 删除文件 删除注册表项

    #include <Windows.h> WinExec("cmd /C \"del C:\\Windows\\secretWin.ini\"",S ...

随机推荐

  1. study topics

    永远不变的东西,原理 study roadmap: 1.user space: tizen power manager => suspend/resume or runtime? android ...

  2. listed

    http://sebastianruder.com/optimizing-gradient-descent/ http://www.nag.co.uk/pss/nag-and-algorithmic- ...

  3. python3内置函数详解

    内置函数 注:查看详细猛击这里 abs() 对传入参数取绝对值 bool() 对传入参数取布尔值, None, 0, "",[],{},() 这些参数传入bool后,返回False ...

  4. jQuery MD5加密实现代码

    $(md("你想要加密的字符串")); md5插件下载地址:http://xiazai.jb51.net/201003/yuanma/jquery_md5.rar 下面是我的简单例 ...

  5. DataAdapter与DataSet的使用

    1.创建数据库连接: 2.创建数据适配器(Adapter); 3.创建容器数据集(DataSet); 4.从数据集中取出指定表: 5.遍历表数据并输出: using System; using Sys ...

  6. 【转】linux下skype的安装使用

    http://hi.baidu.com/24_jason/item/f85725306c7dbcf5df2221ca Fedora 18/17, CentOS/RHEL/SL 6.3 安装 Skype ...

  7. I/O阻塞非阻塞,同步异步

    http://www.cnblogs.com/luotianshuai/p/5098408.html "阻塞"与"非阻塞"与"同步"与&qu ...

  8. WPF 制作聊天窗口获取历史聊天记录

    腾讯从QQ2013版起开始在聊天记录里添加了历史记录查看功能,个人聊天窗口可以点击最上边的‘查看历史消息’,而群组里的未读消息可以通过滚动鼠标中键或者拖动滚动条加载更多消息,那这个用wpf怎么实现呢? ...

  9. Spring----->projects----->概述

    概述: Spring旗下有若干子项目,整个spring工程中其实包含了若干个子项目,这些子项目种类丰富,分别适用于不同的应用领域.开发者可以根据自己的project的功能特色选取spring中某些特定 ...

  10. iOS9的新特性以及适配方案

    新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放.iOS 9加入了更多的新功能,包括更加智能的Siri,新加入的省电模式.iOS 9为开发者提供5000个全新的API. 1. 限制HTT ...