【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 ...
随机推荐
- RealtekRTL8111内建网卡-黑苹果之路
真是服了这神一样的黑苹果.好不容易配好显卡,登陆appstore却报“无法验证您的设备或电脑”,查了一圈,又说要配网卡为en0的,有说要在clover中配FIXLAN的,最准确的是网卡必须是内建(Bu ...
- 网站实现特定某个地区访问执行跳转(js方法)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 各种数据库分页sql
1.oracle数据库分页 select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>= ...
- TStringList TMemo Text与Add赋值的区别 Memo.Text赋值高度注意事项,不得不知的技巧。
Memo.Text赋值高度注意事项,不得不知的技巧. list := TStringList.Create; list.Text:= str: list.Count; list.Clear; l ...
- 多台web如何共享session进行存储(转载)
session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点.我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中 ...
- Mycat配置文件rule.xml
打开<MyCAT_HOME>/conf/rule.xml,对应的分片配置截取内容如下: <tableRule name="auto-sharding-rang-mod&qu ...
- 一个PHP日历程序
<?php //<-------处理通过GET方法提交的变量;开始--------> if($HTTP_GET_VARS[year]=="") { ...
- MapGIS6.7安装图文教程(完美破解)
mapgis安装比较简单,主要注意在安装的时候,先打开软件狗,然后再进行软件安装,一般就不会照成其他安装失败的现象,有时候安装之前没有打开软件狗也安装成功了,也有这情况,不过软件使用也需要软件狗的支持 ...
- phpmyadmin
下载地址:https://www.phpmyadmin.net/ 详情:http://baike.baidu.com/link?url=OIngLv0mpiYTZl_sCEmryWkHgUYqZeHr ...
- 友盟分享SDK集成步骤
1.官方注册appID. 2.menifest添加和声明umeng相关的activity以及appKey. 3. // 首先声明一个controller变量,由友盟服务工厂类直接取得友盟社交服务. m ...