目录 上一页 下一页 下一章

第7章 文件控制块 -199-


图7-3 特殊的FCB结构
  可以看到和标准的FCB相比这个新的FCB主要是对偏移11H后作了改进,很显然,既然要改名,总要给出一个新的文件名才行,这个新文件名就填在FCB偏移11H处。第二我们要讨论一下究竟什么文件可以删除。我们平常使用DOS时都知道只读文件或隐含文件是不能删除的,那么使用13H功能删除文件时也要遵守这个规矩。同样,若不使用扩展FCB,那么卷标、子目录也不能用此功能删除,这个功能唯一能删除的就是那些普通的文件。第三,我们平常使用DOS时都知道DEL命令可以一次删除一批文件,也就是使用"*"或"?",我们习惯上称这两个符号为通配符。13H功能同样支持通配符,也就是说你在FCB中填入的文件名可以是"*.*"或"FILE.???"这样的字符串。当然,使用通配符是有条件的,并非所有的DOS版本都支持通配符,2.1版仅支持".",3.0以上版才支持"*"。考虑到现在所使用的DOS版本都在3.3以上,所以大家可以不必判断DOS版本而放心使用通配符。
  下面这两个程序演示了这两个功能的使用方法,对于我们平时编制程序来讲,这两个功能其实并不常用,所以大家对它们的用法有些印象也就可以了,不必深究。
CHANAME.
DATA

FCB1
DRIVE1
OLD_NAME
OLD_EXT

NEW_NAME
NEW_EXT
MSG
DATA

CODE

MAIN






ASM
SEGMENT
ASSUME
LABEL







ENDS

SEGMENT
ASSUME
PROC
MOV
MOV

MOV
MOV
INT


DS:DATA
BYTE
DB 0
DB 'CONFIG '
DB 'SYS'
DB 5 DUP(0)
DB 'ABCDEFGH'
DB 'LCS'
DB 'OK!!!',0DH,0AH,24H



CS:CODE
FAR
AX,DATA
DS,AX

AH,17H
DX,OFFSET FCB1
21H




;驱动器号,0:当前 1:A 2:B ...
;文件原名
;原扩展名

;新文件名
;新扩展名









;选择DOS的17H功能
;DX指向特殊的FCB
;将文件改名

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章