簡體   English   中英

檢查目錄是否存在,使用路徑配置變量嗎?

[英]checking a if directory exists, Concenating variable with path?

我正在制作程序/安裝程序,需要檢查目錄是否在-C:\\ Users \\%USERNAME%\\ Appdata下,依此類推。 這兩個%無效,我想那只是批量的。 所以我嘗試了另一種方式

編輯!!

所以我修改了我的代碼,但仍然是一個錯誤,這次您可以看到我的所有代碼,我知道它的效率很低。 謝謝!

公開課表格1

Dim reflex As Boolean
Dim nodus As Boolean
Dim rinstalled As Boolean

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles install.Click
    If ComboBox1.SelectedIndex = 0 Then
        If reflex = True Then
            Process.Start("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\installReflex.bat")
        End If
    End If
    If ComboBox1.SelectedIndex = 1 Then
        If nodus = True Then
            Process.Start("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\installNodus.bat")
        End If
    End If
End Sub

Private Sub dlclient_Click(sender As Object, e As EventArgs) Handles dlclient.Click
    If ComboBox1.SelectedIndex = 0 Then
        My.Computer.Network.DownloadFile("http://download1644.mediafire.com/s111t3phtatg/bqsuh8c4f2n8w99/Reflex.jar", "C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.jar")
        My.Computer.Network.DownloadFile("http://download763.mediafire.com/93aqmg62kvqg/5jfpe65usw3tajw/Reflex.json", "C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.json")
        My.Computer.Network.DownloadFile("http://download939.mediafire.com/cr8u67j6ce3g/60ewsmp3l35e1mt/installReflex.bat", "C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\installReflex.bat")
        status.ForeColor = Color.Green
        status.Text = "Client Downloaded!"
    End If
    If ComboBox1.SelectedIndex = 1 Then
        My.Computer.Network.DownloadFile("http://download903.mediafire.com/qmqiiyb1128g/6q6libdtwvgp0kt/NodusLauncher.jar", "C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.jar")
        My.Computer.Network.DownloadFile("http://download1835.mediafire.com/4w9bh91tf9qg/ug7jsnj0gkxu2gp/NodusLauncher.json", "C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.json")
        My.Computer.Network.DownloadFile("http://download1346.mediafire.com/ecje8cg9wdug/uqm37mk1k4qxi59/installNodus.bat", "C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\installNodus.bat")
        status.ForeColor = Color.Green
        status.Text = "Client Downloaded!"
    End If
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Start()
    Timer2.Start()
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If ComboBox1.SelectedIndex = 0 Then
        If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.jar") Then
            If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.json") Then
                If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\installReflex.bat") Then
                    If My.Computer.FileSystem.DirectoryExists("C:\Users\" & SystemInformation.UserName & "\AppData\.minecraft\versions\Reflex") Then
                        install.Enabled = False
                        dlclient.Text = "Client installed"
                    Else
                        reflex = True
                        status.ForeColor = Color.Green
                        status.Text = "Client Downloaded!"
                        dlclient.Enabled = False
                        install.Enabled = True
                        dlclient.Text = "Client Already Downloaded"
                    End If
                Else
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.json")
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.jar")
                End If
            Else
                My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.jar")
                My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\installReflex.bat")
            End If
        Else
            If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.json") Then
                If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\installReflex.bat") Then
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\Reflex.json")
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Reflex\installReflex.bat")
                End If
            Else
                dlclient.Enabled = True
                install.Enabled = False
                status.ForeColor = Color.Red
                status.Text = "Client not downloaded"
                dlclient.Text = "Download Client"
            End If
        End If
    End If
    If ComboBox1.SelectedIndex = 1 Then
        If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.jar") Then
            If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.json") Then
                If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\installNodus.bat") Then
                    If My.Computer.FileSystem.DirectoryExists("C:\Users\" & SystemInformation.UserName & "\AppData\.minecraft\versions\NodusLauncher") Then
                        install.Enabled = False
                        dlclient.Text = "Client Installed"
                        status.Text = "Client Installed"
                    Else
                        nodus = True
                        status.ForeColor = Color.Green
                        status.Text = "Client Downloaded!"
                        dlclient.Enabled = False
                        install.Enabled = True
                    End If
                Else
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.json")
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.jar")
                End If
            Else
                My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.jar")
                My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\installNodus.bat")
            End If
        Else
            If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.json") Then
                If System.IO.File.Exists("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\installNodus.bat") Then
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\NodusLauncher.json")
                    My.Computer.FileSystem.DeleteFile("C:\Program Files (x86)\MCHaxor\bin\clients\1.8\Nodus\installNodus.bat")
                End If
            Else
                dlclient.Enabled = True
                install.Enabled = False
                status.ForeColor = Color.Red
                status.Text = "Client not downloaded"
                dlclient.Text = "Download Client"
            End If
        End If
    End If
End Sub

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    about.Show()
End Sub

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick

End Sub

末級

正如我在上面的評論中所述,您正在檢查的目錄是錯誤的,因為其中包含無效的目錄名稱字符...

 '**.minecraft is invalid for a directory name...**
  If My.Computer.FileSystem.DirectoryExists("C:\Users\" & SystemInformation.UserName & "\AppData\.minecraft") Then
        status.Text = "Client Installed"
        install.Enabled = False
    End If

編輯我不知道開始的時期,是的,這是一個有效的路徑。 我只是使用創建的文件夾再次進行了測試,效果很好。 不知道你還在做什么嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM