【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 ...
随机推荐
- linux下查找某个文件位置的方法
一.通过文件名查找法: 举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录 下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf ...
- Karma: 3 - 测试覆盖率
karma 的插件 karma-coverage 提供了测试代码覆盖率的支持. karma 的页面:http://karma-runner.github.io/0.8/config/coverage. ...
- 关于javascript tween的学后小感想
今天决定了解一下tween算法,首先得下载个tween.js看看吧,好吧,有点被惊艳到了. 也让我想起了之前上数学课时,听到过的一句话:“数学世界是神秘.纯洁.有魅力的”,一直 记得这句话,期待有朝一 ...
- 【转载】shell编程——if语句 if -z -n -f -eq -ne -lt
shell编程中条件表达式的使用 if 条件then Commandelse Commandfi 别忘了这个结尾 If语句忘了结尾fites ...
- angular笔记
/** * Created by Administrator on 2016/5/3 0003. */ ng-app是告诉angularjs编译器把该元素当作编译的根 //定义模块 var myApp ...
- kafka使用
0: ./sbt update ./sbt package ./sbt assembly-package-dependency 1: 启动ZK: 通过kafka的命令启动:bin/zookeeper- ...
- Linux驱动框架之framebuffer驱动框架
1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲 ...
- Towers of Hanoi
Your mission is to move the stack from the left peg to the right peg. The rules are well known: Only ...
- Tlist
Tlist (Classes.pas) 在我刚开始接触TList的时候,TList搞得我迷雾重重,都是Capacity属性惹的祸.我查了Delphi的帮助,它说Capacity是TList的最大容量, ...
- RTX2010服务器端的主要通信端口有哪些?
RTX服务端程序在安装之后,如果安装服务端电脑的操作系统有防火墙(如Windows XP.Windows2003等)或者安装了防火墙(如瑞星.Norton等),那么需要在防火墙上打开RTX所需要使用的 ...