2017-10-30 7 views
1
.model small 

.data 

filename db "name.txt",0  
err db "error$" 
.code   

start: 
mov ax,@data 
mov ds,ax 
;;file is opening 
mov ah,3dh 
lea dx,filename 
mov al,0 
int 21h 

jc err1 
;delete the file not working 
mov ah, 41h 
lea dx,filename 
int 21h 

mov ah,4ch 
int 21h 

err1: lea dx,err 
mov ah,09h 
int 21h 

end start 

私はディレクトリからファイルを削除しようとしていますが、コードが動作していません。ファイルを開いて読むことができますが、ファイルを削除できません。私のコードで何が間違っていますか?emuでファイルを削除できません8086

+0

ファイルシステムのどのようなそれがオンになっていますか?ファイルの正しいアクセス権を持っていますか? –

+3

開いているファイルを削除しようとすると、特に「排他」モードを使用して開いたときに機能しないことがあります。また、あなたが得るエラーコードは何ですか? – Jester

答えて

3

は、おそらくお使いのオペレーティングシステムが近いそれを試して、開いているファイルを削除することはできません:

HANDLER DW ?  ;◄■■ VARIABLE IN DATA SEGMENT. 
... 
;;file is opening 
mov ah,3dh 
lea dx,filename 
mov al,0 
int 21h  
jc err1 
MOV HANDLER, AX ;◄■■ PRESERVE FILE HANDLER. 

;CLOSE FILE. 
MOV AH, 3EH  ;◄■■ 
MOV BX, HANDLER ;◄■■ HANDLER OF FILE TO CLOSE. 
INT 21H 

;delete the file NOW IS working 
mov ah, 41h 
lea dx,filename 
int 21h 
+0

あなたは* handle *( "ファイルハンドル"のように)を意味し、* handler *は意味しません。 –

+0

@PeterCordes、oops、latino english :) –

+0

ありがとう、それは働いた –

関連する問題