很多朋友經常來問:為什么我用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,有時候還需要做一些不太優雅的事情,比如打包完畢后拆包改設置提升權限,參閱
http://hi.baidu.com/westsky/blog/item/a114f4390bb1cafd3b87ceec.html