1

为了简短起见,我正在开发一个简单的游戏,可以与世界上任何对此感兴趣的人一起玩,并且因为我正在创建所说的游戏,所以我决定为该游戏开发一个简单的启动器,该启动器可以 ping 网站版本,使用已安装游戏的存储文本文件检查该版本,并查看其版本是否不同。如果版本不同,启动器会下载游戏。如果此人尚未安装游戏,则会为他们下载游戏。

现在对于我为什么要在此处发布的问题,我试图从 AppData 目录中获取已存储在计算机上的文本文件,以供启动器读取,并将其用作与网站上的版本进行比较。这就是我在发布时所拥有的:

启动时:

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim wc As New Net.WebClient

Text = wc.DownloadString("https://dl.dropboxusercontent.com/u/47132467/version.txt")

If My.Computer.FileSystem.FileExists("C:\Program Files\SC\SC.exe") Then
    StartBtn.Enabled = True
    StartBtn.Visible = True
Else
    StartBtn.Enabled = False
    StartBtn.Visible = False
End If

If My.Computer.FileSystem.FileExists("C:\Program Files\SC\Readme.txt") Then
    ReadMeBtn.Visible = True
Else
    ReadMeBtn.Visible = False
End If
End Sub

简而言之,我试图弄清楚如何从存储在 AppData 下的计算机本身制作一个文本文件,Environ("AppData") & "\SC\version.txt"一直在试图弄清楚如何让程序读取本地存储的文本文件并将其作为一个变量,程序将比较它与在线文本文件。先谢谢了!抱歉,如果我让任何人感到困惑,我的大脑正处于 derp 模式,现在试图弄清楚这一点。

4

2 回答 2

1

这里有 2 个读和写​​函数:

Public Function GetFileContents(ByVal FullPath As String, _
   Optional ByRef ErrInfo As String = "") As String

    Dim strContents As String
    Dim objReader As StreamReader
    Try

        objReader = New StreamReader(FullPath)
        strContents = objReader.ReadToEnd()
        objReader.Close()
        Return strContents
    Catch Ex As Exception
        ErrInfo = Ex.Message
    End Try
End Function

Public Function SaveTextToFile(ByVal strData As String, _
 ByVal FullPath As String, _
   Optional ByVal ErrInfo As String = "") As Boolean

    Dim Contents As String
    Dim bAns As Boolean = False
    Dim objReader As StreamWriter
    Try

        objReader = New StreamWriter(FullPath)
        objReader.Write(strData)
        objReader.Close()
        bAns = True
    Catch Ex As Exception
        ErrInfo = Ex.Message

    End Try
    Return bAns
End Function

称呼:

Dim File_Path as string = Environ("AppData") & "\SC\version.txt"
Dim versionStr as String = GetFileContents("File_Path")
Label1.text = versionStr
Label1.text.refresh ''// Sometimes this may be required depending on what you are doing!
于 2013-04-12T04:41:11.407 回答
0

如果您想直接阅读版本而不是文本文件,请查看以下代码:

   If My.Computer.FileSystem.FileExists(fn) Then

        Dim fv As FileVersionInfo = FileVersionInfo.GetVersionInfo(fn)

        If fv Is Nothing Then Return -1 'file has no version info

        Return fv.FileMajorPart * 100000 + fv.FileMinorPart * 1000 + fv.FileBuildPart

    Else
        Return 0 'file does not exist
    End If
于 2013-04-13T19:55:25.660 回答