我試圖將所有數據庫文件從以前的安裝複製到具有新路徑名的新安裝。問題是安裝程序不知道數據庫文件的名稱,所以我試圖使用通配符。Inno Setup - FileCopy在路徑名中使用通配符
我嘗試使用TFileStream.Create(),但這是搜索單個文件,如「* .mdb」,我不斷收到一個錯誤,說它找不到該文件。我也嘗試使用FileCopy(),但它似乎只是失敗,繼續前進。我甚至嘗試使用Exec()通過命令行來運行它,但它只會凍結安裝。
我在網上搜索了很長時間的答案並閱讀了大量的文檔。我只需要知道如何使用通配符來複制未知名稱的文件。下面是我嘗試過的例子。
TFileStream.Create()
OldDBs := 'C:\Users\seang\Desktop\Old\*.mdb';
NewDBs := 'C:\Users\seang\Desktop\New\*.mdb';
SourceDB:= TFileStream.Create(OldDBs, fmOpenRead);
DestDB:= TFileStream.Create(NewDBs, fmCreate);
DestDB.CopyFrom(SourceDB, SourceDB.Size);
SourceDB.Free;
DestDB.Free;
FileCopy()
FileCopy('C:\Users\seang\Desktop\Old\*.mdb', 'C:\Users\seang\Desktop\New\*.mdb', True);
命令行
Exec('cmd.exe', 'COPY "C:\Users\seang\Desktop\Old\*.mdb" "C:\Users\seang\Desktop\New\*.mdb"', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
參見[Inno Setup的:在拷貝代碼部分的文件夾,子文件夾和文件遞歸(http://stackoverflow.com/q/ 33391915/850848) –