处理windows 95的长文件名中断详解

处理windows 95的长文件名中断详解

ID:14189349

大小:48.50 KB

页数:17页

时间:2018-07-26

处理windows 95的长文件名中断详解_第1页
处理windows 95的长文件名中断详解_第2页
处理windows 95的长文件名中断详解_第3页
处理windows 95的长文件名中断详解_第4页
处理windows 95的长文件名中断详解_第5页
资源描述:

《处理windows 95的长文件名中断详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、处理Windows95的长文件名中断详解处理Windows95的长文件名中断详解GoldEagle很多朋友在DOS环境下写过程序,而且有许多和文件处理有关。众所周知,DOS下的文件名为8.3的格式,而Windows95开始使用长文件名格式,以前的DOS下的程序只能按8.3格式来处理这些长文件名,读取文件或目录名时还好,最多只是看起来有些不顺眼(都变成PROGRA~1、MYPROD~3.EXE这样的文件名了),要创建新的目录和文件时就麻烦了,因为以前的DOS下的开发环境(如TubroC2.0,BorlandC++3.1,TurboPascal等)没有处理长文件名的函数,所有的长文件

2、名在以前的函数中都被截尾处理了。找了一些资料,发现Windows95提供了处理长文件名的中断,翻译并整理成文,希望对大家有点帮助。本文介绍的所有功能都是通过INT21H来调用的。Windows95是通过21H号中断的71H子中断来处理长文件名的,列表如下:AL值功能===============================================0DH重置驱动器39H创建子目录3AH删除子目录3BH改变当前目录41H删除文件43H读取/设置文件属性47H得到当前目录4EH查找第一个符合条件的文件(findfirst)4FH查找下一个符合条件的文件(findnext)5

3、6H移动(改名)文件60HTRUENAME6CH创建/打开文件A0H读取卷信息A1H结束文件查找(findfirst/findnext)A6H读取文件信息A7H时间转换A8H产生短文件名(8.3格式)A9H服务器创建/打开文件AAH开始/结束SUBST中断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功说明:如果返回出错代码7100H,说明不支持此功能,将调用老式的中断为与老版本DOS兼容(7.0以前),在调用前先将CF置位以确认在退出时它被置位另外还有几个功能是未公开的:AL=A2H,A3H,A4H,A5H,其中AL=A2H的功能已知,与AL=4FH功能类似,这几个

4、功能是Windows内部使用的,在本文就不介绍了。一、重置驱动器入口:AX=710DHCX=0000H将文件系统缓冲区(buffer)实际写盘,并重置驱动器0001H将文件系统缓冲区(buffer)和缓存(cache)实际写盘,并重置驱动器0002H重新挂接DriveSpace卷DX=驱动器号(00H=A:,01H=B:,等等)出口:CF清零对应老式的调用:AH=0DH二、创建子目录入口:AX=7139HDS:DX->长目录名(ASCIZ串)出口:中断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功对应老式的调用:AH=39H三、删除子目录入口:AX=713AHDS:

5、DX->要删除的长目录名(ASCIZ串)出口:中断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功对应老式的调用:AH=3AH四、改变当前目录入口:AX=713BHDS:DX->要设为当前目录的长目录名(ASCIZ串)出口:中断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功对应老式的调用:AH=3BH五、删除文件入口:AX=7141HDS:DX->要删除的文件的长文件名(ASCIZ串)SI=通配符和属性标志0000H不支持通配符,搜索属性也被忽略0001H支持通配符,只有名字和属性匹配的才删除CL=搜索属性CH=必匹配(must-match)属性出口:中

6、断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功对应老式的调用:AH=41H六、读取/设置文件属性入口:AX=7143HDS:DX->文件名(ASCIZ串)BL=00H读取属性返回:CX=文件属性01H设置属性CX=文件属性02H读取压缩文件的物理大小返回:DX:AX=文件的实际使用磁盘空间字节数03H设置最后写入日期/时间DI=新的最后写入日期CX=新的最后写入时间04H读取最后写入日期/时间返回:DI=最后写入日期CX=最后写入时间05H设置最后访问日期DI=新的最后访问日期06H读取最后访问日期返回:DI=最后访问日期07H设置创建日期/时间DI=新的创建日期

7、CX=新的创建时间SI=百分秒数08h读取创建日期/时间返回:DI=创建日期CX=创建时间SI=百分秒数出口:中断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功成功时返回值请参看本小节的“入口”部分对应老式的调用:AH=43H请参考:附一、附二、附三七、得到当前目录入口:AX=7147HDL=驱动器号(00H=当前驱动器,01H=A:,等等)DS:SI->用于存储目录名(ASCIZ串)的内存区出口:中断调用后CF置位表示出错(AX存储出错代码),CF清零表示成功目录

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。