我是Assembly編程的新手,我想知道如何在創建文件時檢查文件是否存在。在這個程序中,如果同名文件存在於同一個文件夾中,我期待它返回一個錯誤。但是,它只是忽略它並創建一個文件,而不管它是否存在。有人能告訴我爲什麼會出現這種情況嗎?哦,我正在使用TASM進行編譯。在彙編語言中創建文件之前檢查文件是否存在
.model tiny
.stack 0100h
.data
org 01000h
file db 65,?,64 dup(?)
crstr1 db 'Enter file name to be created:$'
crstr2 db 'File successfuly created!'
db 'Press any key to continue . . .$'
crstr3 db 'File already exists or invalid name!$'
.code
main: jmp begin
begin:
mov ax, @data
mov ds, ax
CLEAR
GOTOXY 2,4
DISP crstr1
INP file
;file check
mov cx, 3fh
mov dx, offset file
mov ah, 4eh
int 21h
je error
mov ah, 3ch
mov dx, offset file
mov cx, 0
int 21h
;no error
CLEAR
GOTOXY 2,4
DISP crstr2
mov ah, 08
int 21h
jmp exit
error:
mov ah,02h
mov dh,6
mov dl,4
int 10h
mov ah, 09h
mov dx, offset crstr3
int 21h
exit:
int 20h
end main
end
如果文件存在,您可以先使用'int 21h/ah = 3dh'打開文件,並在文件失敗時創建它。或者你可以嘗試使用'int 21h/ax = 4300h'來獲取文件屬性,如果該文件不存在,我預計會失敗。 – Michael
@邁克爾甚至用啊= 6ch。 –