很多朋友經常來問:為什麼我用CopyFile/XCopyFile函數拷貝檔案無效?
引起這種情況的原因有很多,今天略微總結了一下,歡迎各位朋友跟帖補充不完善的地方
1:檔案路徑錯誤,比如将CopyFile/XCopyFile腳本放在OnFirstUIBefore裡,但是引用的檔案路徑卻是INSTALLDIR/TARGETDIR的,而這時候,安裝程式還未将安裝檔案拷貝至使用者安裝路徑,當然是找不到可拷貝的檔案的
調試和解決辦法:在任何拷貝之前,用FindFile函數來确定你的檔案路徑是否正确;有必要時,調整腳本所在位置
2:函數的參數使用錯誤,比如XCopyFile拷貝全部檔案,參數寫法是xxx\\*.*,而有的朋友粗心大意想當然地隻寫了需要拷貝的檔案夾的名字,而不用通配符*.*去比對檔案夾之下的所有檔案,自然拷貝不成功
調試和解決辦法:多讀幾遍IS自帶的函數的example
3:敏感區域的保護措施,常見的有win7, windows server系統,對系統盤的一些敏感區域保護是很嚴密的,普通權限的操作根本無法将檔案拷貝進去
調試和解決辦法:試試将函數的拷貝改成普通非系統盤路徑是否成功,以便于确定是否是作業系統的保護引起的問題;解決辦法,對于windows權限,并沒有什麼特别好的解決辦法,無非是提升安裝包的權限,比如在release裡把required execute level選為highest available,有時候還需要做一些不太優雅的事情,比如打包完畢後拆包改設定提升權限,參閱
<a href="http://hi.baidu.com/westsky/blog/item/a114f4390bb1cafd3b87ceec.html">http://hi.baidu.com/westsky/blog/item/a114f4390bb1cafd3b87ceec.html</a>