繁体   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