【Visual Lisp】驱动器、目录、文件和注册表
;;驱动器、目录、文件、和注册表
;;★★★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】驱动器、目录、文件和注册表的更多相关文章
- 【读书笔记】C#高级编程 第二十四章 文件和注册表操作
(一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...
- x64系统的判断和x64下文件和注册表访问的重定向——补记
原来的地址 x64系统的判断和x64下文件和注册表访问的重定向(1) x64系统的判断和x64下文件和注册表访问的重定向(2) x64系统的判断和x64下文件和注册表访问的重定向(3) 之前在(3)里 ...
- 删除Oracle文件、注册表
用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下: 1. 开始->设置->控制面板-& ...
- MFC学习 文件操作注册表操作
c读写文件 void CFileView::OnRead() { FILE *pFile = fopen("1.txt", "r"); /*char ch[10 ...
- 【Visual Lisp】人机交互与数据处理(表除外)-lisp
;;本专题所讲述的内容是人机交互以及常规数据处理技术;;★★★01.人机交互★★★;;△△△键盘输入交互△△△(getint "请输入整数");;从键盘输入整数,如果不是整数则重复 ...
- 获取Host文件权限 注册表导入
Windows Registry Editor Version 5.00 ;取得文件修改权限 [HKEY_CLASSES_ROOT\*\shell\runas] @="管理员权限" ...
- Inno setup complier将文件添加注册表
[Registry] Root: HKCR; Subkey:.; ValueType: string; ValueName: ; ValueData:"264file" Root: ...
- 如何用.reg文件操作注册表
Windows Registry Editor Version 5.00 ;删除值 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpi ...
- C++ 执行 cmd 命令 删除文件 删除注册表项
#include <Windows.h> WinExec("cmd /C \"del C:\\Windows\\secretWin.ini\"",S ...
随机推荐
- dbus
http://blog.csdn.net/zyz511919766/article/details/7700498 http://maemo.org/maemo_training_material/m ...
- vs2010中将c++控制台程序修改成windows应用程序
报错:无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 vs2010环境下将Win32控制台应用程序,改为Win32项目 直接将控制台的mian函数改成 _ ...
- Apache 配置HTTPS协议搭载SSL配置
在设置Apache + SSL之前, 需要做: 安装Apache, 请参见: Windows环境下Apache的安装与虚拟目录的配置, 下载安装Apache时请下载带有ssl版本的Apache ...
- 解决hibernate只能插入一条数据的问题
hibernate初学,根据视频教程写好代码后,发现无论执行多少次main函数,数据库中只有一条数据,尝试多次,后来终于发现问题... 使用的工具是:MYSQL 5.7.13 eclipse 4. ...
- 【SSM 3】Mybatis应用,和Hibernate的区别
PS:每次写概念性的总结,都是各种复制,各种粘,然后各种理解各种猜.但是这一步的总结,决定了我能够再这条路上走的远近和是否开心.是否创造!so,开启Ctrl A+Ctrl C的模式吧. 接触到这个概念 ...
- writel(readl(&pwm_timer->tcfg0) | 0xff, &pwm_timer->tcfg0);
解析这句代码什么意思! 神说:选定预分频器0 为什么? 神说:因为实验中选的是timer1,在预分频器0下: 若选择timer4,该如何写这句代码? 首先看tcfg0中选择预分频器1,在看tcfg1里 ...
- windows无提示关闭页面
今天碰到个问题,需要自动关闭网页,网上找了方法,一直在火狐测试,一直没反应,还以为写错了,后来发现用火狐需要进行设置(后文有提供方法),IE可正常使用... 下面提供部分代码: 需要自动关闭网页,可以 ...
- 【转】Java八种基本数据类型的比较及其相互转化
java中有且仅有八种基本数据类型,记住就行,共分为四类: 第一类:整型-->byte short int long 第二类:浮点-->float doub ...
- 自己练习读取写入txt
读取文件中的内容生成一个list,然后修改list后再写会该文件文件中的格式是:AA,BB,CC,DDblist = []for line in open('a.txt'): blist.extend ...
- 利用 Gulp 处理前端工作流程
最近做项目,因为每次做完后都要手动压缩CSS.JS 等文件,压缩后另存为 *.min.xxx. Less 还要手动输入命令进行编译,调整页面也经常要手动刷新页面看效果,很麻烦,就尝试用 gulp 去处 ...