2012-03-30 50 views
1

我在寫一個需要訪問c:\program files\program_name\裏面的文件的程序。如果我不一定知道他們的結構,但只有目的地如何循環瀏覽文件夾?

我的目標文件將永遠是裏面的\program_name\program_name\bin\something.exe

然而,因爲程序是從檔案中提取,如果用戶拆包不當,它會簡單地\program_name\bin\something.exe,跳繩整體水平。

目前基本上,我得到的c:\program files\內容,收集包含program_name所有文件夾的名稱,然後將其添加到列表中,然後使用該列表來遍歷這些的每一個看到的,如果有一個program_name內它等,這應該最終導致我的結果。

基本上我爲每個單獨的可能性創建大塊代碼。有沒有更智能的方法去解決這個問題?

回答

3

聽起來像你可以從安裝程序寫入註冊表中受益。然後,即使用戶安裝到奇怪的位置,您也會知道所有文件和文件夾在哪裏。

+0

原來的程序是我設計的沒有,這就是問題的核心。但是,這當然是我該怎麼做的。 – 2012-03-31 00:09:41

+0

啊。我同情。那麼做遞歸搜索可能是你唯一的選擇。可選:作爲最後的手段,讓用戶指出它的安裝位置。 – 2012-03-31 00:27:45

0

要展開什麼查理說 - 你可以換原來的應用程序在某種會寫註冊表並提取應用的任何地方,用戶決定統一安裝程序式的東西。安裝程序會提示用戶安裝位置,並提取到該位置。 InnoSetup可以配置爲編寫卸載信息,放置卸載鏈接等。您可以自定義InnoSetup腳本的卸載程序部分,以便根據需要執行任何清理操作,和/或調用其他外部程序。

InnoSetup可以讓你在實際的安裝程序EXE包裝的東西,所以你只需要分發一個flle。我可以驗證這是否有效 - 儘管我從未嘗試過打包大文件。

這裏有一個鏈接到InnoSetup:http://www.jrsoftware.org/isinfo.php

相關問題