2015-12-02 190 views
1

如何在Inno Setup中使用複製隱藏的外部文件?不要隱藏文件,而要使用隱藏文件。因爲現在:隱藏文件被忽略在Inno Setup中複製隱藏文件

任何幫助嗎?謝謝)

[Files] 
Source: "{src}\folder\*"; DestDir: "{app}"; \ 
    Flags: skipifsourcedoesntexist external ignoreversion recursesubdirs createallsubdirs; 
+0

你需要更具體。 Inno Setup不關心文件是否隱藏,可以像其他文件一樣被刪除和替換。你想要做什麼**具體**?請在您的[編輯]中加入安裝腳本中的代碼。如果您沒有清楚解釋問題,我們無法幫助您。 –

+0

如果**文件夾**內的文件被隱藏 - 沒有任何反應) – user3027198

+0

'{src}'是**源**文件(設置中的文件)的路徑。爲什麼你需要將它隱藏在**源**中? (你已經清楚地看到它,因爲你自己將它添加到源代碼中。)你的'[Files]'條目清楚地表明這些文件來自'{src} \ folder \',但是你試圖從'{ SRC} \ file.txt'。並且請在問題本身中提供有關您問題的其他信息,而不是在評論中提供。 –

回答

2

當您使用通配符選擇[Files]部分項文件,Inno Setup的安裝程序明確跳過隱藏的文件。

你無法對此做任何事情。

RecurseExternalCopyFiles function in Projects\Install.pas,特別是這部分:(。這是一個外部文件,因爲這是你用什麼,但對於編譯時的文件,這是同樣見Compile.pasBuildFileList

if SourceIsWildcard then begin 
    if FindData.dwFileAttributes and FILE_ATTRIBUTE_HIDDEN <> 0 then 
    Continue; { <-- Skip hidden files, comment by @MartinPrikryl } 
    FileName := FindData.cFileName; 
end 
else 
    FileName := SearchWildcard; { use the case specified in the script } 


所有你能做的,就是要實現[Code]腳本自己安裝,而不是使用[Files]部分。

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep = ssInstall then 
    begin 
    Log('Installing files'); 
    DirectoryCopy(ExpandConstant('{src}\folder'), ExpandConstant('{app}')); 
    end; 
end; 

對於實施DirectoryCopy,看到我的回答質疑Inno Setup: copy folder, subfolders and files recursively in Code section


對於編譯時文件(不external標誌),那麼您可以使用a preprocessor function FindFirst[Files]條目列表。

+0

@ user3027198我已經添加了示例代碼。 –

相關問題