我比较了两个文件并将不匹配的值存储在临时文件中。我已经提到了这个链接。之后从临时文件中读取值并替换为原始文件。最后我试图删除临时文件。除了临时文件删除之外,所有过程都运行良好。
我使用了以下代码:
page custom twofilecompare
page custom originalwrite
Function twofilecompare
FileOpen $0 "$INSTDIR\backup.properties" "r"
FileOpen $1 "$INSTDIR\orginal.properties" "r"
#IfFileExists "$INSTDIR\temp.properties" 0 +1
#Delete /REBOOTOK "$INSTDIR\temp.properties"
FileOpen $R0 "$INSTDIR\temp.properties" "w"
ClearErrors
loop:
FileRead $0 $2
${If} $2 == "$\r$\n"
Goto loop
${EndIf}
FindClose $0
FileRead $1 $3
IfErrors done
strcmp $2 $3 loop here
here:
FileWrite $R0 $2
Goto loop
done:
FileClose $0
FileClose $1
FileClose $R0
FunctionEnd
Function originalwrite
IfFileExists "$INSTDIR\temp.properties" 0 filenotfound
FileOpen $0 "$INSTDIR\temp.properties" "r"
loop:
FileRead $0 $1
IfErrors done
//do some stuff
done:
**IfFileExists "$INSTDIR\resource\temp.properties" 0 filenotfound
Delete /REBOOTOK "$INSTDIR\temp.properties"**
filenotfound:
MessageBox MB_OK "file not found"
FunctionEnd
即使我也无法手动修改这三个文件[temp,backup,original]。如果我修改并单击保存提示消息,显示为“请检查此文件是否打开了另一个程序” ,我也使用了文件使用完成后关闭的文件。即使我也尝试过这段代码
Function .onInstSuccess
IfFileExists "$INSTDIR\temp.properties" notfound
MessageBox MB_OK "file exists"
Delete /REBOOTOK $INSTDIR\temp.properties
Goto done
notfound:
MessageBox MB_OK "file not found"
Done:
MessageBox MB_OK "file deleted"
FunctionEnd
但是临时文件没有被删除。如何删除临时这个文件?
有人能帮我吗?
提前致谢