2009-06-10 40 views
0

我正在一個簡單的FOSS VB.net程序上工作,該程序主要在一個窗口中運行(如果任何人希望幫助查看代碼或希望查看以供參考,請鏈接http://code.google.com/p/slotshuffle/)。Vb.net代碼來檢查一個文件(谷歌代碼上的新版本)是否存在於網絡上?

我在網上搜索了通知用戶更新版本的方法,其中大部分都涉及改變部署方法或增加很多類(對於包含註釋的只有500多行的程序)。

我想做什麼就能做(在僞代碼)是去到一個文件菜單或按鈕(即子)和:

if http://(website...)/slotshuffle2.0.zip exists 
then 
msgBox.show "New version available" + a link 
else 
msgBox.show "No new version check back later" 

好像有一個.exists方法可以在本地使用,但我不太確定它是否適用於此?還有誰有更新檢查和googlecode經驗? (即地址是否以可預見的方式形成,使我所問的是可行的?)

回答

1

如果我是你,我會這麼做的方式是在網站上有一個currentversion.html頁面,其中包含當前版本號,那麼如果你使用webrequest,這裏描述http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx你可以找到該版本,與版本比較的客戶,然後從那裏做你所需要的。

+0

沒有完全按照你的建議,但你讓我用currentversion.html思考>>>結束了剛剛添加一個webbrowser組件並鏈接到谷歌代碼wiki! 感謝大家回覆,愛這個網站! – 2009-06-13 04:54:30

3

首先要指出的是MsgBox將而不是顯示任何情況下的超鏈接。你必須有自己的形式。

對於如何檢查網絡上的文件的實際問題,您想要使用System.Net.WebClient類。這將允許您輕鬆地從網上下載文件。

或者,使用System.Net.HttpWebRequest類創建文件請求。使用起來稍微複雜一點,但是可以讓你請求文件並從服務器獲取響應,而不需要實際下載整個文件。

+0

這也是一個有趣的想法,我將不得不調查更多,也許爲未來的版本。感謝您及時的回覆! – 2009-06-13 06:20:44

2

我做過類似的東西,雖然它只是讀取URL文本和剝離了,我需要用正則表達式的信息:

System.Net.WebClient().DownloadString(oURL).Split(Chr(10)) 

我然後通過所產生的陣列(行)循環和處理信息。

也許這可以讓你開始

3

如果你肯定知道該文件存在,您可以檢查IfModifiedSince屬性。

爲此,您必須在後續檢查中下載第一個版本&後存儲上次修改日期,並將文件修改日期與存儲日期進行比較。

有關示例,請參閱上面的MSDN鏈接。

相關問題