【问题标题】:Not able to Delete file using NSIS无法使用 NSIS 删除文件
【发布时间】:2012-03-13 09:23:15
【问题描述】:

我有一个与 NSIS 相关的问题。 我在(“c:/Installer/Installer.exe”文件夹)中有一个由 NSIS 创建的安装程序。 当我运行安装程序时,它会在安装文件夹中创建一个日志文件(“c:/Installer/installlog.txt”)。成功运行 Installer.exe 后,我只想从 "c:/Installer" 中删除 installlog.txt 。

我有以下功能

Function .onInstSuccess
    call cleanUp
    ifSilent 0 +2
             ${LogText} "INFO :: Application has been installed"
             CopyFiles "$EXEDIR\${INSTALL_LOG}" "$Dir\LogFiles\"
             IfFileExists "$Dir\LogFiles\{INSTALL_LOG}" DoNothing CopyAgain
             CopyAgain:
                CopyFiles "$DIR\${INSTALL_LOG}" "$Dir\LogFiles\"
                Delete "$DIR\${INSTALL_LOG}"
                goto DoNothing
             DoNothing:           
             SetOutPath $EXEDIR     
             Delete "$EXEDIR\*.log" ;....................**but the file does not get deleted**
FunctionEnd

有人可以告诉我如何进行这项工作。 我需要尽快解决这个问题,非常感谢您的帮助

【问题讨论】:

  • 您要删除$DIR\${INSTALL_LOG}?当文件应该被删除时,您在详细日志中有什么错误消息?
  • 如果文件正在被使用,则无法删除,您应该关闭它或使用/REBOOTOK指示删除指令,以便在重新启动时将其删除

标签: nsis


【解决方案1】:

我假设您正在使用 these 日志记录宏。您应该在最后一次调用${LogText} 之后调用${LogSetOff},这样文件句柄就会关闭,然后您应该能够删除该文件。

另外,使用Delete "$EXEDIR\*.log" 不是一个好主意,您已经知道文件名...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 2013-07-12
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多