2014-01-08 52 views
1

對於特定設置,我需要使用inno-setup腳本{app}常量的文件夾名稱(不含路徑)。Inno安裝程序需要應用程序常量的文件夾名稱

因此,如果在'選擇目標文件夾'的嚮導中選擇下一個文件夾:C:\ ProgramFiles \ MyAppFolder,我需要在設置腳本中使用'MyAppFolder'變量。

+0

如果用戶選擇'C:\ Program Files文件\ SubFolder \ MyAppFolder'?如果基本路徑不是「程序文件」,但是例如'文件和設置「?我的意思是,我們如何識別基本路徑? – TLama

+0

@TLama - 我懷疑Dennis想要從{app}中切割/切割MyAppFolder常量(當然,我可能是錯的)。但你是對的 - 丹尼斯應該詳細說明。 – RobeN

+0

如果用戶選擇c:\ program files \ subfolder \ myappfolder,我需要'myappfolder'。 TLama提供的解決方案對我來說是否合適? – Dennis

回答

1

如果您只想獲得{app}路徑的尾部,那麼可以調用ExtractFileName函數獲取帶反斜槓的路徑。這返回給定路徑的尾部。在下面的腳本中,PathTail var將包含路徑尾部,除非用戶選擇驅動器根目錄(例如C:\)。在這種情況下,PathTail變量將是空的:

[Code] 
function NextButtonClick(CurPageID: Integer): Boolean; 
var 
    PathTail: string; 
begin 
    Result := True; 
    if CurPageID = wpSelectDir then 
    begin 
    PathTail := ExtractFileName(RemoveBackslashUnlessRoot(ExpandConstant('{app}'))); 
    MsgBox('PathTail: ' + PathTail, mbInformation, MB_OK); 
    end; 
end; 

只要是明確的,這裏是你會得到什麼樣的例子:

User selected       PathTail contains 
----------------------------   ---------------------------- 
C:\         '' 
C:\Program Files\AppFolder\   'AppFolder' 
C:\Program Files\Subfolder\AppFolder\ 'AppFolder' 
相關問題