2013-01-15 2 views
3

Inno Setup에서 BeforeInstall을 사용하여 설치하는 동안 호출되는 DeleteTransferFolder 절차가 있습니다.Inno Setup에서 DelTree를 사용하여 폴더를 삭제할 수 없습니다.

내가 보여주는 MsgBox 메시지가 몇 개 있기 때문에이 프로 시저가 호출됩니다. 그러나 DelTree는 지정된 폴더와 하위 폴더를 삭제하지 않습니다.

의견이 있으십니까?

procedure DeleteTransferFolder(); 
begin 
    MsgBox('DeleteTransferFolder 1', mbInformation, MB_OK); 

    if (FileExists ('{userdesktop}\RemedyNotes 1.0\RemedyNotes Old.remno')) then 
    DelTree(ExpandConstant('{userdesktop}\RemedyNotes 1.0'), True, True, True); 

    MsgBox('DeleteTransferFolder 2', mbInformation, MB_OK);  
end; 

답변

3

FileExists 행에서 ExpandConstant 호출이 누락되어 있으므로 false를 반환하므로 DelTree가 호출되지 않습니다.

두 번째 MsgBox는 조건부 (if/begin/end 쌍이 부족할 수 있음)를 벗어 났기 때문에 표시됩니다.

그래서, 당신의 코드를 변경 :

procedure DeleteTransferFolder(); 
begin 
    MsgBox('DeleteTransferFolder 1', mbInformation, MB_OK); 

    if (FileExists (ExpandConstant('{userdesktop}\RemedyNotes 1.0\RemedyNotes Old.remno'))) then 
    begin 
    DelTree(ExpandConstant('{userdesktop}\RemedyNotes 1.0'), True, True, True); 
    MsgBox('DeleteTransferFolder 2', mbInformation, MB_OK); 
    end; 
end; 
+0

감사 jachguate - 완벽하게 작동! –

+0

당신을 환영합니다! – jachguate

관련 문제