创建一个空目录(NSIS)

And*_*ski 5 windows installer nsis error-checking create-directory

我怎么能通过NSIS 2.46来做到这一点?

我知道这可能是一个愚蠢的问题,但我怎么创建一个空目录并检查错误?

我这样做:

ClearErrors
CreateDirectory $R1
${If} ${Errors} 
  DetailPrint "failed"
  MessageBox mb_IconStop|mb_TopMost|mb_SetForeground "Can not create folder $R1"
  Abort
${Else}
  DetailPrint "done"
${EndIf}
Run Code Online (Sandbox Code Playgroud)

如果变量$ R1是

  • "c:\ test" - 完成
  • "c:\ con" - 失败("con" - 在Windows上保留)
  • "qwer:\ test2" - 完成了
  • "qwer\test3" - 完成(没有":")

为什么"test2"和"test3"没有错误?

更新: 如何使它成为一个错误?

And*_*ski 6

我决定:

ClearErrors
CreateDirectory $R1
${If} ${Errors} 
${OrIfNot} ${FileExists} "$R1\*.*"
  DetailPrint "failed"
  MessageBox mb_IconStop|mb_TopMost|mb_SetForeground "Can not create folder $R1"
  Abort
${Else}
  DetailPrint "done"
${EndIf}
Run Code Online (Sandbox Code Playgroud)

有更多的想法?


Fra*_*o R 5

为了检查错误,您应该检查错误标志,您做得对。我认为问题是你应该使用引号:

CreateDirectory "$R1"
Run Code Online (Sandbox Code Playgroud)