2010-12-01 268 views

回答

4

而是在Anders的第三點打開該文件,因爲,我會做這樣說:

Rename $INSTDIR\license.txt $PLUGINSDIR\license.txt 
RMDir /R $INSTDIR # Remembering, of course, that you should do this with care 
CreateDirectory $INSTDIR 
Rename $PLUGINSDIR\license.txt $INSTDIR\license.txt 

根據當它到達該文件上,它不能刪除,RMDir /R可能將其大部分留在後面,因爲我相信當它不能刪除某些東西時它會停止;這種方式將正確擺脫它。這也將失去目錄統計信息,但這可能並不重要。儘管如此,我建議Anders的第一個兩個解決方案之一。他們更精確。

3

關閉我的頭頂,有3種方式來做到這一點:

  • 使用上的一個文件中刪除在編譯時與系統等產生的名單上的時間
  • 使用FindFirst /在運行時查找下一個/ FindClose並刪除基於文件名的許可除外
  • 有點破解,但你應該可以打開許可文件進行寫/附加操作,然後刪除/ RMDir將不能刪除文件因爲它有一個開放的句柄。
+0

我不認爲在文件上打開一個句柄會做什麼 - 它會讓其他東西被拋在後面。 – 2010-12-01 22:45:41

+0

@克里斯摩根它工作得很好:http://nsis.pastebin.com/wDvmNnCg你認爲什麼可以留下? RMDir/R不應該真的被使用,所以我不確定這是不是你正在談論的 – Anders 2010-12-01 23:19:50

相關問題