2012-07-18 28 views
0

程序我對補丁程序的/更新客戶端遊戲...C#中使用瀏覽文本框爲FOLDERPATH

遊戲它是爲做是很老,它有2個補丁。對於一個玩的人來說,他們需要安裝補丁。一旦補丁安裝完畢,如果他們決定要使用其他補丁進行遊戲,他們必須卸載所有內容並重新開始。

我做的程序有兩個按鈕。版本1和版本2。當他們點擊Version1按鈕時,它會搜索C:\ PROGRA〜1 \ Game \ For files,刪除指定的文件,然後從安裝在程序文件中的程序附帶的文件夾中複製文件。到遊戲路徑。

我意識到我正在使用上述路徑。但是,如果他們不使用Windows 32位,這將無法正常工作。如果我使用inno安裝程序,我如何確定客戶端程序文件的位置?

編輯:編輯:當我問我以前的問題時,Soory傢伙編輯問題我的頭不直。

+0

我「有一個艱難的時間去了解你問什麼M ..也許你可以改一下你的問題有點? – pilotcam 2012-07-18 02:09:12

+0

你爲什麼不安裝過程中(在一個註冊表項,用於保存安裝位置實例),所以你可以稍後再次找到它? – 2012-07-18 02:09:31

+0

這聽起來像你需要審查一些事情..因爲通常你需要做的就是使用相對路徑..例如,Application.StartupPath會給你你的。例如: string myINFpath = Path.Combine(Application.StartupPath,「InfFiles」); 如果你創建一個msi安裝程序您可以 將這些文件添加到您的安裝文件中。您無需關心用戶安裝遊戲的位置。 – Matt 2012-07-18 02:11:29

回答

0

我認爲你所追求的只是string.IsNullOrEmpty()。您測試以查看文本框文本是空還是空,如下所示:

if (string.IsNullOrEmpty(textBox.Text)) 

..然後您基於此建立您的路徑。例如:

string BuildFilePath() 
{ 
    return string.Concat(!string.IsNullOrEmpty(textBox.Text) ? textBox.Text : @"C:\Program Files\Game\Folder\etc", @"\Cool.inf"); 
} 

string filePath = BuildFilePath(); 

if (file.Exists(filePath)) 
    // etc.. 

我希望這是有道理的。

編輯:將複雜的連接移動到它自己的方法,因爲我是一個「乾淨的代碼」傳教士。

+0

從不硬代碼安裝位置..你不知道你的EXE將在客戶端機器上的最終位置。 – Matt 2012-07-18 02:14:50

+0

在他的問題中的exe沒有在路徑中引用。他正在尋找安裝在客戶端機器上的遊戲路徑。我沒有看到更優雅的方式找到該文件夾​​,而不是首先找到,如果失敗,請提示用戶找到適合您的路徑(可能在任何地方)。這是OP所要求的。 – 2012-07-18 02:35:52

+1

我明白了。很難理解他的意思。感謝您的澄清。 – Matt 2012-07-18 03:05:07

0

你能做這樣的事嗎?

if (File.Exists(System.IO.Path.Combine(textBox1.Text,"Cool.inf"))) 
    File.Delete(System.IO.Path.Combine(textBox1.Text,"Cool.inf")); 
相關問題